XDocument.Parse
在解析XML时会留下不需要的空白区域。看来我的XML“没有缩进”,这意味着无论我是否发送LoadOptions.PreserveWhitespace
标志(http://msdn.microsoft.com/en-us/library/bb551294(v=vs.110).aspx),都会保留空格。
这意味着当我拥有如下XML时:
<?xml version="1.0" encoding="UTF-8"?>
<blah:Root xmlns:blah="example.blah.com">
<blah:Element>
value
</blah:Element>
</blah:Root>
然后看看
XDocument xDoc = XDocument.Parse(blahXml);
xElement xEl = xDoc.Root.Element("Element");
string value = xEl.Value;
print value;
它会打印"\n value\n"
而不是"value"
。
如果我是否将缩进或不缩进的XML赋予空格,XDocument.Parse
如何始终忽略空格?
答案 0 :(得分:1)
元素之间的空格可以忽略(例如
<root>
<foo>foo 1</foo>
<foo>foo 2</foo>
</root>
如果忽略空格,则可以将解析为具有两个root
子元素节点的foo
元素节点,或者解析为具有五个子节点的root
元素节点:text node,{{ 1}}元素节点,文本节点,foo
元素节点,文本节点),但如果元素包含一些包含空格的文本数据,那么它被认为是重要的。因此,您唯一的选择是在.NET框架中使用类似foo
的方法,或者在XPath中使用Trim
,以便在处理元素时删除空白区域。