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?
auszug aus ausgangs-xml:
<rechnung>
<kundennummer>012345</kundennummer>
<beleg belegart="NA">
<text>shampoo</text>
</beleg>
<beleg belegart="A">
<text>zahnseide</text>
</beleg>
</rechnung>
<rechnung>
<kundennummer>023456</kundennummer>
<beleg belegart="A">
<text>sonnencreme</text>
</beleg>
<beleg belegart="A">
<text>handtuch</text>
</beleg>
</rechnung>
auszug aus xsl-File:
<xsl:for-each select="rechnung">
<xsl:for-each select="beleg">
<xsl:element name="item">
<xsl:attribute name="name">nummer</xsl:attribute>
<text>
xsl:choose
<xsl:when test="@belegart='A'">
<xsl:variable name="BelegIndexA"><xsl:number level="single" format="1" count="beleg[@belegart='A']"/></xsl:variable>
<xsl:value-of select='number($BelegIndexA)-1'/>
</xsl:when>
<xsl:when test="@belegart='NA'">
<xsl:variable name="BelegIndexNA"><xsl:number level="single" format="1" count="beleg[@belegart='NA']"/></xsl:variable>
<xsl:value-of select='number($BelegIndexNA)-1'/>
</xsl:when>
<xsl:when test="@belegart='N'">
<xsl:variable name="BelegIndexN"><xsl:number level="single" format="1" count="beleg[@belegart='N']"/></xsl:variable>
<xsl:value-of select='number($BelegIndexN)-1'/>
</xsl:when>
</xsl:choose>
</text>
</xsl:for-each>
</xsl:for-each>
auszug aus ziel-xml:
<rechnung>
<kundennummer>012345</kundennummer>
<beleg belegart="NA">
<item name="nummer"><text>0</text></item>
<text>shampoo</text>
</beleg>
<beleg belegart="A">
<item name="nummer"><text>0</text></item>
<text>zahnseide</text>
</beleg>
</rechnung>
<rechnung>
<kundennummer>023456</kundennummer>
<beleg belegart="A">
<item name="nummer"><text>1</text></item>
<text>sonnencreme</text>
</beleg>
<beleg belegart="A">
<item name="nummer"><text>2</text></item>
<text>handtuch</text>
</beleg>
</rechnung>