我有一个类似于这样的XML元素:
<content locale="en"> </content>
括号内的东西之间的文字由一个空格字符组成。当我将XML加载到XmlDocument中时,请查看上述元素的XmlElement对象,我希望:
contentElement.InnerText.Length == 1; // InnerText should be a single space character
但我得到的是
contentElement.InnerText.Length == 0;
假设这不是Microsoft的DOM实现中的错误,这是我不知道的XML / DOM规范的一个特性吗?如果是这样,我有任何选择,但在写出XML时添加转义的空格字符?
答案 0 :(得分:1)
如果你想在解析后在你的XML文件中保留空格,请考虑使用<![CDATA[
和]]>
部分让解析器知道它应该从字面上理解这个字符数据......
答案 1 :(得分:0)
我特别不了解.net,但xml规范还不清楚“空白节点”(文本节点只有空格。所以实现不同。大多数库都有一个启动/停止的方法(相反)默认情况下)处理空白节点。
空白节点没有明确定义的行为的原因是,当使用干净的格式时,你会无意中拥有很多:
<outerTag>
<innerTag />
</outerTag>
实际上有两个空白节点!