XDocument在解析时自动缩进文件,并且在保存时不删除缩进

时间:2013-08-12 21:39:07

标签: c# xml visual-studio linq-to-xml indentation

我正在寻求有关使用XDocument(非XMLDocument)保存XML文件的帮助。

所以我有一个没有缩进的xml文件(事实上它是1行)。当我使用XDocument.Parse将此读取到XDocument时(在使用StreamReader读取和存储字符串之后),生成的XDocument将缩进。

好吧,我认为只要我能将它保存回文件而没有缩进就可以了。但是,即使我有

XmlWriterSettings writerSettings = new XmlWriterSettings();
writerSettings.NewLineOnAttributes = false;
writerSettings.NewLineHandling = NewLineHandling.None;
writerSettings.Indent = false;

并在创建XmlWriter时将其传递给

using (var writer = XmlWriter.Create(u.ToFileSystemPath(), settings))
{
    xd.Save(writer);
}

生成的XML文件仍有缩进。当我在Visual Studio上调试时,我注意到writer是一个类XmlWellFormedWriter。这与我的结果有关吗?任何帮助将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:3)

Save()以及ToString()上提供了SaveOptions。

    string xmlstring = 
@"<Top>
    <First>1</First>
    <Second>Dude</Second>
    <Third>Now</Third>
</Top>";

    XDocument doc = XDocument.Parse(xmlstring);
    doc.Save(@"C:\temp\noIndet.xml", SaveOptions.DisableFormatting);
        // string noIndent = doc.ToString(SaveOptions.DisableFormatting);

<强>输出:

enter image description here