6

すべてのノードの名前とその値を xml に挿入したいと考えています。私が抱えている問題は、最初の子ノードの 1 つに値が割り当てられていないことですが、値を持つ子ノードがあります。ワイルドカードのみを使用すると、値が割り当てられていないものを含む、そのレベルのすべての子ノードが選択されます。ワイルドカードを使用して、子ノード自体を持たない子ノードのみを選択する方法はありますか?

4

1 に答える 1

22

述語[not(node())]は、子ノードを持たないすべてのノードで true ですが、これにはテキスト ノードとコメント ノードが含まれます。おそらく、要素の子[not(*)]を持たないノードだけが true である必要があります。

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

したがって、要素の子を持たないすべてのリーフ要素を反復処理し、要素名とコンテンツを出力します

于 2013-06-10T20:05:09.163 に答える