Я использую следующее, чтобы сопоставить все <section>
s с установленным атрибутом ревизии. <section>
может появляться на разных уровнях дерева документа, всегда в пределах <chapter>
s.
<xsl:for-each select="//section[@revision]">
<!-- Do one thing if this is the first section
matched in this chapter -->
<!-- Do something else if this section is in the same
chapter as the last section matched -->
</xsl:for-each>
Как говорится в комментариях, мне нужно, чтобы каждая итерация for-each
знала главу, к которой принадлежал раздел предыдущий . Я знаю, что <xsl:variable>
на самом деле являются статическими после установки, и что <xsl:param>
применяется только к вызывающим шаблонам.
Поскольку это Docbook, я могу получить номер главы раздела с помощью:
<xsl:apply-templates select="ancestor::chapter[1]" mode="label.markup" />
но я думаю, что это можно сделать только с помощью XPath.
Есть идеи? Спасибо!