XSLT 1 で CSV に数値を追加するにはどうすればよいですか?
私は取りたい:
<num>1,2,3</num>
要素内の数値の合計を取得するため、上記から 6 を取得します。
XSLT 1 で CSV に数値を追加するにはどうすればよいですか?
私は取りたい:
<num>1,2,3</num>
要素内の数値の合計を取得するため、上記から 6 を取得します。
FXSL とstr-split-to-words
テンプレートを使用する (時間がかかり、エラーが発生しやすい再帰的なテンプレートを書くのが面倒です:)
) :
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ext="http://exslt.org/common">
<xsl:import href="strSplit-to-Words.xsl"/>
<xsl:output indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:variable name="vwordNodes">
<xsl:call-template name="str-split-to-words">
<xsl:with-param name="pStr" select="."/>
<xsl:with-param name="pDelimiters" select="','"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="vNums" select="ext:node-set($vwordNodes)/*"/>
<xsl:value-of select="sum($vNums)"/>
</xsl:template>
</xsl:stylesheet>
この変換が提供された XML ドキュメントに適用されると、次のようになります。
<num>1,2,3</num>
必要な正しい結果が生成されます。
6