XSLT, Ermittliung der Position

DC-7C

Mitglied
Hallo Allerseits!

ich habe folgende Frage:

angenommen, ich habe ein Element, das eine Reihe Kind-Elemente hat, die auch mehrfach auftauchen, z.B.:

Code:
<element1>
<tag1>sdfsdf</tag1>
<tag2>sdfsdfsd</tag2>
<tag1>sdfsdf</tag1>
<tag3>fsdfsd</tag3>
<tag1>dfsdfsd</tag1>
</element1>

wie kann ich ermitteln, ob das aktuelle <tag1> das erste aus allen <tag1>-Elemente ist? Sowas wie
Code:
<xsl:if test="tag1[position()=first()]"
...
</xsl:if>
wird nicht funktionieren, oder?

Danke im voraus!
 

Enumerator

Mitglied Kamel
Hi!

Ein kleiner Tweak mit generate-id() sollte zum Ziel fühen:
XML:
<xsl:template match="//element">
 <xsl:for-each select="./*">
  <xsl:variable name="local_name" select="local-name()"/>
  <xsl:if test="generate-id(../*[local-name() = $local_name]) = generate-id()">
   <!-- erstes Aufkommen -->
  </xsl:if>
 </xsl:for-each>
</xsl:template>

Natülich wieder XSLT 1.0 - mit 2.0 hab' ich mich noch nicht befassen müssen, dennoch wird es da bestimmt eine bessere Methode geben.

Gruß
Enum
 
Zuletzt bearbeitet: