Hallo pices,
wie kann ich erreichen , dass obwohl eine xsl:for-each schleifen , die nummerierung einfach weiter geht und nicht von vorne wieder anfängt.
Ausgehend vom Quell- und Zielformat halte ich diesen Ansatz für geeigneter:
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@id[parent::unitProcedure]">
<xsl:attribute name="id">
<xsl:value-of select="count(preceding::unitProcedure) + 1"/>
</xsl:attribute>
</xsl:template>
Ergebnis:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<mode id="1">
<unitProcedure id="1">.....</unitProcedure>
<unitProcedure id="2">.....</unitProcedure>
<unitProcedure id="3">.....</unitProcedure>
</mode>
<mode id="2">
<unitProcedure id="4">.....</unitProcedure>
<unitProcedure id="5">.....</unitProcedure>
<unitProcedure id="6">.....</unitProcedure>
</mode>
</root>
Falls die id-Attributwerte tatsächlich dem ID-Typ entsprechen sollen, dann den Zahlenwerten noch (einen) Buchstaben voranstellen.
Grüße,
Thomas