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)文章。 –