Hallo pices,
Alternativ hilft auch das Abzählen vorhergehender Elemente mit count() über die Achsen ancestor, parent usw., ggf. als Summe mehrerer count()-Aufrufe kombiniert.
Wie geht das?
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@bp:id">
<xsl:attribute name="bp:id">
<xsl:value-of select="count(ancestor::*[@bp:id]) + count(preceding::*[@bp:id])"/>
</xsl:attribute>
</xsl:template>
Grüße,
Thomas