子文本节点未在xml count()和其他函数中考虑

时间:2014-04-16 12:41:34

标签: xml xslt xpath

我有一个xml:

<a>
Anna
<b>Tom<b>
</a>

因此元素<a>有两个孩子:

  1. Anna:文字文字节点
  2. <b>Tom<b>:文字节点
  3. 所以我假设当我写count(a/*)时,它应该给我2。

    但我得到了1。

    为什么文本节点&#39; Anna&#39;不被考虑?

    当我使用<xsl:for-each select="a/*">时,类似的事情发生了,我只得到一次迭代。

    有任何解释吗?

1 个答案:

答案 0 :(得分:3)

路径a/*选择所有子元素,而不是所有子节点。使用a/node()查找所有子节点。但是你应该找到其中三个,一个带有空格的文本节点,后跟Anna后跟空格,b元素和带有空格的文本节点。