私は次のXML構造を持っています:
<example>
<data>
<numberGer>3,40</numberGer>
</data>
<data>
<numberGer>7,40</numberGer>
</data>
<data>
<numberGer>17,40</numberGer>
</data>
</example>
すべての「numberGer」ノードの合計が必要です。番号のフォーマットが問題です。「、」を使用しているため、関数「sum」はエラーを生成します。したがって、sum(// numberGer)のようなものは機能しません。XSLT2.0関数を使用できます。
計算値とノードのリストを取得する再帰テンプレートを作成する必要があると思います。
何かのようなもの:
<xsl:template name="addGerNumbers">
<xsl:param name="number"/>
<xsl:param name="nodes"/>
<xsl:choose>
<xsl:when test="$nodes">
<xsl:variable name="recursive_result">
...
<xsl:call-template name="addGerNumbers">
...
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$number + $recursive_result"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="0"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
最後に、結果として単一の値が必要になります。
XSL for-eachループ内の以前のすべてのノードをXPathsum()する方法は?最後に1つの番号が必要なため、機能しません。