So erhalten Sie einen Zähler in xsl: für jede Schleife, der die Anzahl der aktuell verarbeiteten Elemente widerspiegelt.
Zum Beispiel ist mein Quell-XML
<books>
<book>
<title>The Unbearable Lightness of Being </title>
</book>
<book>
<title>Narcissus and Goldmund</title>
</book>
<book>
<title>Choke</title>
</book>
</books>
Was ich bekommen möchte ist:
<newBooks>
<newBook>
<countNo>1</countNo>
<title>The Unbearable Lightness of Being </title>
</newBook>
<newBook>
<countNo>2</countNo>
<title>Narcissus and Goldmund</title>
</newBook>
<newBook>
<countNo>3</countNo>
<title>Choke</title>
</newBook>
</newBooks>
Das zu ändernde XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<newBooks>
<xsl:for-each select="books/book">
<newBook>
<countNo>???</countNo>
<title>
<xsl:value-of select="title"/>
</title>
</newBook>
</xsl:for-each>
</newBooks>
</xsl:template>
</xsl:stylesheet>
Die Frage ist also, was anstelle von ???. Gibt es ein Standardschlüsselwort oder muss ich einfach eine Variable deklarieren und innerhalb der Schleife erhöhen?
Da die Frage ziemlich lang ist, sollte ich wahrscheinlich eine Zeile oder ein Wort Antwort erwarten :)