ThomasM: nummerierung

Beitrag lesen

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