So erhalten Sie einen Zähler innerhalb von xsl: for-each, der die Anzahl der verarbeiteten Elemente widerspiegelt.
Zum Beispiel XML meine Quelle istZähler innerhalb von xsl: für jede Schleife
<books>
<book>
<title>The Unbearable Lightness of Being </title>
</book>
<book>
<title>Narcissus and Goldmund</title>
</book>
<book>
<title>Choke</title>
</book>
</books>
Was will ich erhalte, 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>
Die XSLT zu ändern:
<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>
So ist die Frage, was an Ort und Stelle zu setzen ist von ???. Gibt es ein Standard-Schlüsselwort oder muss ich einfach eine Variable deklarieren und innerhalb der Schleife erhöhen?
Da die Frage ziemlich lang ist, sollte ich wohl erwarten eine Zeile oder ein Wort Antwort :)
Brauchen Sie noch einen Schlusskurs "auf den Attributwert hinzufügen –
Das ist alles schön und gut, bis Sie einen Filter wie xsl hinzufügen: Wenn in Ihrem xsl:. For-each Dann Position() ist unnütz und Sie brauchen einen richtigen Zähler –
@Mike Stavrov Das war nicht Teil der Frage! Kann nicht jede Situation abdecken – redsquare