Q. Как узнать порядковый номер элемента?
Инструкцией
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
копирую все подряд, нужно в каждый элемент добавить атрибут number, в который записать порядковый номер элемента:
<Root>
<El1 number="1"/>
<El1 number="2"/>
<El2 number="1"/>
<El2 number="2"/>
<El2 number="3"/>
<El1 number="3"/>
</Root>
Использование position() не спасает, т.к. элементы идут в перемешку, а считать необходимо элементы с одинаковыми именами…
A [olpa].
count(preceding-sibling::*) + 1