如何在不改变格式/间距的情况下在C#中编辑XML?

时间:2009-10-12 14:51:20

标签: c# xml

我需要一个通过xml文件的应用程序,更改一些属性值并添加其他属性。我知道我可以用XmlDocument和XmlWriter做到这一点。但是,我不想更改文档的间距。有没有办法做到这一点?或者,我是否必须自己解析文件?

2 个答案:

答案 0 :(得分:4)

XmlDocument有一个属性PreserveWhitespace。如果将其设置为true,将保留无关紧要的空格。

请参阅MSDN

修改

如果我执行以下代码,则会保留包含换行符的空格。 (确实在<b/>

之间插入了一个空格
    XmlDocument doc = new XmlDocument();
    doc.PreserveWhitespace = true;
    doc.LoadXml(
@"<a>
   <b/>
</a>");
    Console.WriteLine(doc.InnerXml);

输出结果为:

<a>
   <b />
</a>

答案 1 :(得分:0)

通常会丢弃或重新格式化无关紧要的空格。因此,除非XML文件在节点上使用xml:space="preserve"属性来保留其精确的空格,否则根据XML规范更改空格是正确的。