XSLT-Inkrement-variable in der for-each Schleife funktioniert nicht

Mein input-XML:

<Citizens>
  <Category type="Plumbers">
    <Citizen>John</Citizen>
  </Category>
  <Category type="Doctors">
    <Citizen>Ram</Citizen>
    <Citizen>Kumar</Citizen>
  </Category>
  <Category type="Farmers">
    <Citizen>Ganesh</Citizen>
    <Citizen>Suresh</Citizen>
  </Category>
</Citizens>

Hatte ich versucht, die folgende XSLT-zählen Citizen irrelevant Category

<xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text"/>
    <xsl:template match="/">
        <xsl:variable name="citizenTotal" select="0" />
        <xsl:for-each select="Citizens/Category">
            <xsl:variable name="currentCount" select="count(Citizen)" />
            <xsl:variable name="citizenTotal" select="$citizenTotal+$currentCount" />
        </xsl:for-each>
        Total Citizen nodes: <xsl:value-of select="$citizenTotal"></xsl:value-of>
    </xsl:template>
</xsl:stylesheet>

Die erwartete Ausgabe ist 5 , aber es gibt 0, was die initiierten Wert außerhalb for-each. Ich bin fehlende /messing mit <xsl:variable/> für Ihren Anwendungsbereich. Ich habe gerade versucht, was ich in der Regel nicht mit JSLT, wo der Umfang ist page standardmäßig. So etwas in XSLT zu schweigen von den Gültigkeitsbereich von Variablen in XSLT ?

InformationsquelleAutor Sridhar | 2013-07-15

Schreibe einen Kommentar