XmlDocument-中哪些节点被当作空节点?

作者:vkvi 来源:ITPOW(原创) 日期:2010-12-19

以下节点被当作空节点,使用 FirstChild.Value 取值会出错

  • 什么都没有的节点。比如 <node></node>。
  • 仅有回车换行符、半角空格、Tab 符号等这些空白字符的节点。比如 <node>   </node>。用 InnerText 取值时结果是零长度字符串(也就是说 InnerText 也不认这些空白字符),但与 FirstChild.Value 相比,它不报错。

以下节点不被当作空节点

  • 有 CDATA,即使其中什么都没有。比如 <node><![CDATA[]]></node>。
  • 除了回车换行符、半角空格、Tab 符号等这些空白字符外,还有其他字符,此时空白字符也被当作是内容。比如 <node>   x</node>,这个 node 的内容是“   x”。

InnerText 与 FirstChild.Value 对待空白节点

  • InnerText 取空白节点的值时,不会出错,取到的值是零长度字符串。
  • FirstChild.Value 取空白节点的值时,出错。
相关文章