В моем файле XSLT есть инструкция, которая подсчитывает узлы и выдает номер гиперссылки с надстрочным индексом рядом со словом, к которому прикреплена заметка, а также саму заметку (с пронумерованной гиперссылкой):
<xsl:template match="//tei:body//tei:note">
<a>
<xsl:attribute name="name">
<xsl:text>footnoteref</xsl:text>
<xsl:number level="any" count="//tei:body//tei:note" format="1"/>
</xsl:attribute>
<xsl:attribute name="href">
<xsl:text>#footnote</xsl:text>
<xsl:number level="any" count="//tei:body//tei:note" format="1"/>
</xsl:attribute>
<sup>
<xsl:number level="any" count="//tei:body//tei:note" format="1"/>
</sup>
</a>
</xsl:template>
<xsl:template match="tei:note" mode="footnote">
<br>
<a>
<xsl:attribute name="name">
<xsl:text>footnote</xsl:text>
<xsl:number level="any" count="//tei:body//tei:note" format="1"/>
</xsl:attribute>
<xsl:attribute name="href">
<xsl:text>#footnoteref</xsl:text>
<xsl:number level="any" count="//tei:body//tei:note" format="1"/>
</xsl:attribute>
<xsl:number level="any" count="//tei:body//tei:note" format="1"/>.
</a>
<xsl:text> </xsl:text>
<xsl:apply-templates/>
</i>
</br>
</xsl:template>
[...]
<xsl:apply-templates select="//tei:body//tei:note" mode="footnote"/>
Все отлично работает.Тем не менее, я хотел бы контролировать порядок, в котором элементы <note>
подсчитываются.Например, если это мой .xml:
<body>
<div>
<p>Bla<note>This is a second note</note> blabla</p>
</div>
<div>
<p>Bla2<note>This is a first note</note> bla bla...</p>
</div>
</body>
Я бы хотел, как я сказал в тексте, вывести «1» для заметки «Это первая заметка» и«2» для заметки «Это вторая заметка», даже если в файле .xml они располагаются в другом порядке.
Что касается вывода, я уже выводю текст в нужном мне порядке.с чем-то вроде этого в начале моего файла XSLT:
<!-- Order of execution -->
<xsl:template match="tei:text/tei:body/tei:div">
<xsl:apply-templates select="tei:opener/tei:dateline"/>
<xsl:apply-templates select="tei:opener/tei:salute"/>
<xsl:apply-templates select="tei:p [not(tei:stamp)] [not(tei:address)] [not(tei:postscript)]"/>
<xsl:apply-templates select="tei:closer/tei:salute"/>
<xsl:apply-templates select="tei:closer/tei:signed"/>
<xsl:apply-templates select="tei:closer/tei:dateline"/>
<xsl:apply-templates select="tei:postscript"/>
<xsl:apply-templates select="tei:stamp"/>
</xsl:template>
с результатом, что текст находится в том порядке, в котором я его хочу, и номер заметки идет, например, из верхней части документаот 1 до 8, с '9' между '5' и '6', потому что соответствующая нота находится в tei: dateline.
Как я могу сказать 'count' для подсчета<note>
элементов в нужном мне порядке, независимо от того, в каком порядке они появляются в XML-файле?