Summe aus mehreren XMLs mit XSL
einUfo
- xsl
0 Thomas Meinike0 einUfo
Meine Samstag Nacht:
Ich versuche aus mehreren .xml Dokumenten mittels xsl die
Anzahl der jeweiligen MEMBER herauszuholen (funktioniert auch) und dann
mit diesen Template eine Summer der MEMBERs zu erzeugen.
Parameter T bring die Anzahl der .xml (Element XML-SOURCE)
Parameter E soll die aktuelle Position weiterzählen
<xsl:template name="Summe">
<xsl:param name="T"/>
<xsl:param name="E" select="1"/>
<xsl:param name="Result" select="0"/>
<xsl:variable name="GetXML" select="XML-SOURCE[$E]"/>
<xsl:variable name="tz" select="count(document(concat('../', $GetXML))//MEMBER)"/>
xsl:choose
<xsl:when test="$E>$T">
<xsl:value-of select="$Result"/></xsl:when>
xsl:otherwise
<xsl:call-template name="Summe">
<xsl:with-param name="E" select="E+1"/>
<xsl:with-param name="Result" select="$Result+count(document(concat('../', $GetXML))//MEMBER)"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Für jede Hilfe danke ich im vorraus
einUfo
Hallo,
<xsl:with-param name="E" select="E+1"/>
^
$E
MfG, Thomas
Hallo,
<xsl:with-param name="E" select="E+1"/>
^
$EMfG, Thomas
Danke, war nur bei copy'n paste passiert. Das Problem war die Variable mit der Anzahl der XML-SOURCE Elemente (hier jetzt Anz2), die musste global definiert werden. So funktionierts:
<xsl:variable name="Anz2" select="count(//XML-SOURCE)"/>
<xsl:template name="Summe">
<xsl:param name="Pos" select="1"/>
<xsl:param name="Result" select="0"/>
<xsl:param name="GetXML" select="XML-SOURCE[$Pos]"/>
xsl:choose
<xsl:when test="$Pos > $Anz2">
Summe: <xsl:value-of select="$Result"/><br/>
</xsl:when>
xsl:otherwise
<xsl:call-template name="Summe">
<xsl:with-param name="Pos" select="$Pos+1"/>
<xsl:with-param name="Result" select="$Result+count(document(concat('../', $GetXML))//MEMBER)"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
ufo