How to omit the xml declarations when using XElement.Save?
XElement.Save
actually does what I need but it starts the file with:
<?xml version="1.0" encoding="utf-8"?>
Is there a way to prevent this?
Should I save using other types, methods after I finish creating my XElement
?
Or should I be skipping that line via XmlReader.Read
? Because doing t开发者_运维百科his I feel like it's more fragile as I am assuming the first line is always gonna be this xml declaration.
What's the simpliest way to accomplish this?
XElement.ToString()
won't add the XML declaration to the output. But I don't understand why XmlReader
- or any XML parser - would have trouble with a standard XML declaration.
This example writes the example xmlTree data to text file data.xml without a declaration line, yet includes indentation formatting:
XElement xmlTree = new XElement("Root",
new XAttribute("Attribute1", 1),
new XElement("Child1", 1),
new XElement("Child2", 2)
);
using (var writer = XmlWriter.Create("data.xml", new XmlWriterSettings { OmitXmlDeclaration = true, Indent = true }))
xmlTree.Save(writer);
Using an XmlWriter will give you this ability.
Microsoft article: Serializing with an XML Declaration describes how to control whether serialization generates an XML declaration.
精彩评论