22

尽管在以下代码中使用了 SaveOptions.DisableFormatting 选项:

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);

目标 XML 文件将其添加到其中:

<?xml version="1.0" encoding="utf-8"?>

有没有办法保留原始格式而不添加版本和编码信息?

4

1 回答 1

38

这是XDocument.Save序列化到文件或TextWriter. 如果要省略 XML 声明,可以使用XmlWriter(如下所示)或调用ToString. 请参阅使用 XML 声明进行序列化

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);
于 2013-05-21T23:40:49.580 回答