Hi,
*push*
Nein, war nur Spaß. Wollte sagen, ich hatte gestern gerade mal die Zeit und Muße mich wieder darum zu kümmern. Nun läuft es. String-Replace und Summen sind in XSLT 1.0 aber sehr unschön gelöst, immer rekursiv iterieren. Bei XSLT 2.0 oder mit Extensions wie EXSLT (z.B. bei libexslt) geht das schöner.
Beispiel für eine kleine Summenberechnung:
XML-Code:
<xsl:template name="CalcArticleTotalSum">
<xsl:param name="node"/>
<xsl:param name="sum"/>
<xsl:param name="i"/>
<xsl:param name="max"/>
<xsl:choose>
<xsl:when test="$i <= $max">
<xsl:variable name="product">
<xsl:call-template name="CalcSingleArticleTotalSum">
<xsl:with-param name="node" select="$node/Article[$i]" />
</xsl:call-template>
</xsl:variable>
<xsl:call-template name="CalcArticleTotalSum">
<xsl:with-param name="node" select="$node"/>
<xsl:with-param name="sum" select="$sum + $product"/>
<xsl:with-param name="i" select="$i + 1"/>
<xsl:with-param name="max" select="$max"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="format-number($sum,'#.##')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Das fehlende CalcSingleArticleTotalSum sieht dabei ähnlich aus, berücksichtigt jedoch zusätzlich die Unterprodukte.
Gruß Assertor