关于XmlElement.InnerText和空格的问题

时间:2010-08-25 21:16:11

标签: .net xml

我有一个类似于这样的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时添加转义的空格字符?

2 个答案:

答案 0 :(得分:1)

如果你想在解析后在你的XML文件中保留空格,请考虑使用<![CDATA[]]>部分让解析器知道它应该从字面上理解这个字符数据......

答案 1 :(得分:0)

我特别不了解.net,但xml规范还不清楚“空白节点”(文本节点只有空格。所以实现不同。大多数库都有一个启动/停止的方法(相反)默认情况下)处理空白节点。

空白节点没有明确定义的行为的原因是,当使用干净的格式时,你会无意中拥有很多:

<outerTag>
  <innerTag />
</outerTag>

实际上有两个空白节点!