0

ドキュメント内の特定のパターンに一致する最後のノードを選択したいと考えています。

私は何かをしようとしていた

<xsl:stylesheet version="2.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <xsl:copy-of select="//node_name[last()]"/>
  </xsl:template>
</xsl:stylesheet>

ただし、次のドキュメントでSaxon 9.4でこれを実行すると:-

<a>
  <node_name attr="1"/>
  <b>
    <c>
    </c>
    <node_name attr="2"/>
  </b>
</a>

コピーステートメントがある場所にこの出力が表示されます:-

<node_name attr="1"/><node_name attr="2"/>

私は実際に出力が欲しいのですが:-

<node_name attr="2"/>

ここで何が欠けていますか?

また、私のドキュメントの性質上、このノードへの正確なパスがどのようなものになるかを事前に知ることはできません (再帰要素の束で構成されているため)。

4

1 に答える 1

2

最後のものを探しているのではなくnode_name、すべての node_names の最後を探しています。したがって、次の XPath 式が機能するはずです。

(//node_name)[last()]
于 2013-03-28T21:24:49.103 に答える