XSLT:如何选择没有子节点的所有节点

时间:2013-06-10 19:58:14

标签: xml xslt xpath

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

1 个答案:

答案 0 :(得分:12)

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

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

遍历所有没有元素子元素的叶元素,并打印元素名称和内容