У меня есть tei:xml
документы, которые я преобразовываю в HTML с помощью XSLT 2.0.Эффективная структура документов tei выглядит следующим образом:
...
<p xml:lang="LA">
<seg type="a" corresp="#fooid"><date type="doc_date" when="1245"/>In non hendrerit metus. Sed in
posuere eros, sit amet pharetra lacus.</seg>
<seg type="a">Nullam semper varius justo, vitae mollis turpis
dapibus sit amet. Donec<note type="public_note"></note>
rhoncus tempor urna sit amet
imperdiet.</seg>
<seg type="a">Integer id ante nunc. Curabitur at ligula sed
arcu consequat gravida et id orci. Morbi quis porta
dolor.</seg>
<seg type="a" corresp="#fooid2">Sed dictum<note type="public_note">
sem nec urna sodales cursus. Donec sit amet nibh tempor,
congue ligula semper, rhoncus odio.</seg>
<p>
...
Через несколько <xsl:template>
s я преобразую xml в HTML, а затем перебираю документ tei для определения элементов, которые необходимо преобразовать в номера сносок в верхнем индексе.,Я использую <xsl:number function>
для увеличения числа:
<xsl:template match="p">
<div><xsl:apply-templates></div>
</xsl:template>
<xsl:template match="seg[@type='a']">
<p><xsl:apply-templates></p>
</xsl:template>
<xsl:template match="seg//date[@type='doc_date'] |
seg//note[@type='public_note']">
<sup>
<xsl:number count="seg//date[@type='doc_date'] |
seg//note[@type='public_note']" format="1" level="any"/>
</sup>
</xsl:template>
Производим три <sup/>
с инкрементными значениями 1, 2, 3:
<div>
<p><sup>1</sup>In non hendrerit metus. Sed in
posuere eros, sit amet pharetra lacus.</p>
<p>Nullam semper varius justo, vitae mollis turpis
dapibus sit amet. Donec<sup>2</sup> rhoncus tempor
urna sit amet imperdiet.</p>
<p>Integer id ante nunc. Curabitur at ligula sed
arcu consequat gravida et id orci. Morbi quis porta
dolor.</p>
<p>Sed dictum sem<sup>3</sup> nec urna sodales cursus.
Donec sit amet nibh tempor, congue ligula semper,
rhoncus odio.</p>
<div>
Проблема, которую я не могукажется, решить, как вывести следующее, где <sup>
добавляется ПОСЛЕ <p>
(на основе <tei:seg>
), когда выполняется условие seg[@corresp]
:
<div>
<p><sup>1</sup>In non hendrerit metus. Sed in
posuere eros, sit amet pharetra lacus.</p><sup>2</sup>
<p>Nullam semper varius justo, vitae mollis turpis
dapibus sit amet. Donec<sup>3</sup> rhoncus tempor
urna sit amet imperdiet.</p>
<p>Integer id ante nunc. Curabitur at ligula sed
arcu consequat gravida et id orci. Morbi quis porta
dolor.</p>
<p>Sed dictum sem<sup>4</sup> nec urna sodales cursus.
Donec sit amet nibh tempor, congue ligula semper,
rhoncus odio.</p><sup>5</sup>
<div>
Я могу получить ихработать в отдельных шаблонах (при создании html <p/>
), но не в одном шаблоне.Однако наличие отдельных шаблонов перезапускает нумерацию.
Большое спасибо заранее.