我将这个简单的字符串存储在变量中:
<xsl:variable name="equation">
15+10+32+98
</xsl:variable>
我想让xsl获取存储在这个变量中的字符串并作为数学公式处理以得到结果,有什么建议吗?
答案 0 :(得分:1)
如果您只需要总结数字,则以下XSLT 1.0模板add
将“加上分隔的字符串”作为参数并返回总和。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="text"/>
<xsl:template name="add">
<xsl:param name="plusSeparatedString"/>
<xsl:param name="sumValue" select="0"/>
<xsl:choose>
<xsl:when test="contains($plusSeparatedString,'+')">
<xsl:call-template name="add">
<xsl:with-param name="plusSeparatedString" select="substring-after($plusSeparatedString,'+')"/>
<xsl:with-param name="sumValue" select="$sumValue + substring-before($plusSeparatedString,'+')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="$sumValue + $plusSeparatedString"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="/">
<xsl:call-template name="add">
<xsl:with-param name="plusSeparatedString" select="'4 + 6+ 8'"/>
</xsl:call-template>
</xsl:template>
</xsl:stylesheet>
将此测试样式表应用于任何文档(例如自身)以查看其是否有效。