以下节点被当作空节点,使用 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 取空白节点的值时,出错。