XmlDocument
在自闭标记的末尾添加空格,即使PreserveWhitespace
设置为true
。XmlDocument不保留空白
// This fails
string originalXml = "<sample><node id=\"99\"/></sample>";
// Convert to XML
XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.LoadXml(originalXml);
// Save back to a string
string extractedXml = null;
using (MemoryStream stream = new MemoryStream())
{
doc.Save(stream);
stream.Position = 0;
using(StreamReader reader = new StreamReader(stream))
{
extractedXml = reader.ReadToEnd();
}
}
// Confirm that they are identical
Assert.AreEqual(originalXml, extractedXml);
所需的输出是:
<sample><node id="99"/></sample>
但我得到:
<sample><node id="99" /></sample>
有没有办法来抑制多余的空间?
出于好奇,为什么它很重要?该文件在结构上都是相同的。 –
.Save在内部使用XmlTextWriter,并且该额外空间被记录为行为 –
您可以使用[XNode.DeepEquals](https://msdn.microsoft.com/en-us/library/bb336169%28v=vs.110%29。 aspx)方法来比较XML。另见[this](http://blogs.msdn.com/b/ericwhite/archive/2009/01/28/equality-semantics-of-linq-to-xml-trees.aspx)文章。 –