How to prevent XDocument from adding XML version and encoding information
11,349
That's the behaviour of the XDocument.Save
method when serializing to a file or a TextWriter
. If you want to omit the XML declaration, you can either use XmlWriter
(as shown below) or call ToString
. Refer to Serializing with an XML Declaration.
XDocument xmlDoc = XDocument.Load(FileManager.SourceFile);
// perform your modifications on xmlDoc here
XmlWriterSettings xws = new XmlWriterSettings { OmitXmlDeclaration = true };
using (XmlWriter xw = XmlWriter.Create(targetFile, xws))
xmlDoc.Save(xw);
Related videos on Youtube
Author by
Ein Doofus
Updated on July 14, 2022Comments
-
Ein Doofus almost 2 years
Despite using the SaveOptions.DisableFormatting option in the following code:
XDocument xmlDoc = XDocument.Load(FileManager.SourceFile); string element="campaign"; string attribute="id"; var items = from item in xmlDoc.Descendants(element) select item; foreach (XElement itemAttribute in items) { itemAttribute.SetAttributeValue(attribute, "it worked!"); //itemElement.SetElementValue("name", "Lord of the Rings Figures"); } xmlDoc.Save(TargetFile, SaveOptions.DisableFormatting);
the target XML file gets this added to it:
<?xml version="1.0" encoding="utf-8"?>
Is there a way to preserve the original formatting and not have the version and encoding information added?
-
John Saunders almost 11 yearsThat's not formatting. It's part of the document. What problem causes you to want that removed?
-