6

我想将所有节点的名称及其值插入 xml。我遇到的问题是第一个子节点之一没有分配任何值,但它确实有具有值的子节点。如果我只使用通配符,那么它只会选择该级别上的所有子节点,包括没有分配值的子节点。有没有办法使用通配符来只选择本身没有子节点的子节点?

4

1 回答 1

22

谓词[not(node())]对于所有没有子节点的节点都是正确的,但包括文本和注释节点,也许你想要[not(*)]的是那些没有元素子节点的节点。

 <xsl:for-each select="//*[not(*)]">
    <xsl:value-of select="concat('&#10;',name(),': ',."/>
 </xsl:for-each>

因此迭代所有没有子元素的叶子元素并打印元素名称和内容

于 2013-06-10T20:05:09.163 回答