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

XML节点如何成为自己的子节点?,xml,excel,vba,Xml,Excel,Vba,我的XML文件的结构如下,我正在VBA(Excel 2013)中使用MSXML2 v6.0库 关系数据库 虚拟机 当我检查产品节点时,它说值是“关系数据库”(对于第一个节点),但它也将childNode列为“关系数据库”。这怎么可能 我希望能够通过查看是否有更多的子节点,以编程方式确定我是否已到达节点树的底部,但如果它总是将当前节点作为自己的子节点自引用,则这似乎是不可能的(我注意到只有当节点中有文本时才会发生这种情况。如果它只有一个属性但没有文本,则会将childNodes显示为空) 有没

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


关系数据库
虚拟机
当我检查
产品
节点时,它说值是“关系数据库”(对于第一个节点),但它也将childNode列为“关系数据库”。这怎么可能

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


有没有关于当一个节点有文本,但没有实际的子元素时,为什么该节点会将自己算作自己的子节点的想法,以及如何确定何时到达节点树的末尾?

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

原因是某些元素可能包含文本和其他元素的混合,如:

<p> Hello <strong>Wonderful</strong> World</p>
你好精彩的世界


在这种情况下,每个文本(
Hello
World
)都会成为一个子
#text
节点。

有没有办法只获取节点的文本,而不在文本中包含实际的子节点?若要获取节点的文本,请使用text属性。若要仅获取与文本节点不同的子节点,请使用selectNodes(“*”)您将得到一个类似于childNodes的列表
<p> Hello <strong>Wonderful</strong> World</p>