我正在尝试从字符串加载XDocument,该字符串包含文本节点中具有过多空格的XML元素。根据我对XDocument.Parse方法的MSDN的理解,它应该不保留空格。
为什么那么,在这个简单的例子中,空白仍然存在?
string xml = "<doc> <node>this should be collapsed</node> </doc>";
XDocument doc = XDocument.Parse(xml);
Console.WriteLine(doc.Root.Element("node").Value);
Console.WriteLine调用的结果是每个单词之间有两个空格的短语。我希望每个之间只有一个空格。
答案 0 :(得分:1)
“不保留空格”意味着在加载XDocument
时,将忽略包含仅空格的任何文本节点。
您的xml字符串可以由以下树表示:
doc
|--#text - " "
|--node
| |--#text - "this should be collapsed"
|--#text - " "
如果您检查doc.Root.Value
的内容,您将看到字符串
"this should be collapsed"
如果您在“保留空格”时加载字符串,
XDocument doc = XDocument.Parse(xml, LoadOptions.PreserveWhitespace);
再次检查doc.Root.Value
的内容,您将看到字符串
" this should be collapsed "