C# 在XML文档中保留空格和换行符

C# 在XML文档中保留空格和换行符,c#,xml,xmldocument,linq-to-xml,C#,Xml,Xmldocument,Linq To Xml,我有一个这样的xml文档 <Customer ID = "000A551" Name = "Robert" Salaried = "yes" Area = "VA" /> 为了便于编辑和阅读,请注意属性是如何断线和白间隔的。使用XDocument或XmlDocument修改此文档时,整个格式都会消失。看起来PreserveWhitespace将只处理重要的空白 有没有办法维护换行符和空格?没有,不

我有一个这样的xml文档

<Customer ID = "000A551"
          Name = "Robert"
          Salaried = "yes"
          Area = "VA" 
          />

为了便于编辑和阅读,请注意属性是如何断线和白间隔的。使用
XDocument
XmlDocument
修改此文档时,整个格式都会消失。看起来
PreserveWhitespace
将只处理重要的空白


有没有办法维护换行符和空格?

没有,不是以本机方式处理XML。“infoset”(XML的数据模型)在属性列表中不维护任何属性顺序或空格记录。一些XML处理器会保留属性顺序作为副作用,但没有一个处理器会在属性之间存储空格。对任何人来说,这都是极不寻常的。

此外,依赖XML处理器的副作用是非常危险的。是的,vtd XML(原位解析)可以做他所描述的事情。你看过vtd XML了吗?它将完全满足您的要求,即保持换行符和空白。。