Thomas J.S.: Knoten zählen

Beitrag lesen

Hallo,

Hallo, bitte um Hilfe bei folgendem Problem.

Ich habe die Anforderung, Childtags (beleg) für jedes Attribut (belegart) übergreifend über die Parenttags (rechnung) mit einer laufenden Nummer zu versehen. innerhalb der Tags <rechnung> geht das wunderbar mit folgendem xsl, aber wie geht's ausserhalb?

-----------
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 <xsl:output method="xml" indent="yes" />

<xsl:key name="beleg" match="beleg" use="@belegart" />

<xsl:template match="/data">
  <data>
   <xsl:apply-templates />
  </data>
 </xsl:template>

<xsl:template match="rechnung">
  <rechnung>
   <xsl:apply-templates />
  </rechnung>
 </xsl:template>
 <xsl:template match="beleg">
  <xsl:variable name="this" select="." />
  <xsl:for-each select="key('beleg', @belegart)">
   <xsl:if test="generate-id(.) = generate-id($this)">
    <item name="nummer">
     <text>
      <xsl:value-of select="position()" />
     </text>
    </item>
   </xsl:if>
  </xsl:for-each>
 </xsl:template>
</xsl:stylesheet>
----------

Grüße
Thomas