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

Ost*_*cts 4 xml xslt xpath

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

Dav*_*sle 17

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

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

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

  • @ user2472274:请点击复选标记"接受"David的回答. (3认同)