Я хочу выбрать последний узел, соответствующий определенному шаблону в любом месте документа.
Я пытался что-то вроде
<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"/>
Что я здесь упускаю?
Кроме того, природа моего документа такова, что я заранее не знаю, каким будет точный путь к этому узлу (поскольку он состоит из кучи рекурсивных элементов).