XML节点如何成为自己的子节点?

时间:2014-07-30 17:43:51

标签: xml excel vba

我的XML文件有以下结构,我在VBA中使用MSXML2 v6.0库(Excel 2013)。

<root>
    <products> 
        <product>relational database</product>
        <product>virtual machine</product>
    </products>
</root>

当我检查product节点时,它表示值是“关系数据库”(对于第一个节点),但它也将childNode列为“关系数据库”。这怎么可能?

我希望能够通过查看是否有更多的子节点以编程方式弄清楚我是否已经到达节点树的底部,但是如果它总是自引用当前的话,这似乎是不可能的。节点作为自己的子节点(我注意到这只发生在节点中有文本时。如果它只有一个属性但没有文本,则显示childNodes为空)。

当存在该节点的文本但没有实际的子元素时,为什么节点将自己计为自己的子节点的任何想法,以及实际确定何时到达节点末尾的任何方式树?

1 个答案:

答案 0 :(得分:2)

在XML DOM中,元素中包含的文本也是内部名为#text的子节点

这样做的原因是某些元素可以包含其他元素的混合文本,例如:

<p> Hello <strong>Wonderful</strong> World</p>

在这种情况下,每个文字(HelloWorld)都会成为子#text节点。