0
A
回答
0
在XSLT 2.0本可以通过使用tokenize()
,number()
和sum()
函数来完成,例如以下。请注意,我在+
标志周围包含了可能的空格。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:variable name="test1">1+1+0</xsl:variable>
<xsl:variable name="test2"> 3 +
5 + 12 </xsl:variable>
<xsl:template match="/">
<xsl:variable name="testSplit1" select="tokenize($test1,'\s*\+\s*')"/>
<xsl:variable name="testSplitNum1">
<xsl:for-each select="$testSplit1">
<item><xsl:value-of select="number(.)"/></item>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="testSplit2" select="tokenize($test2,'\s*\+\s*')"/>
<xsl:variable name="testSplitNum2">
<xsl:for-each select="$testSplit2">
<item><xsl:value-of select="number(.)"/></item>
</xsl:for-each>
</xsl:variable>
<root>
<items1><xsl:copy-of select="$testSplitNum1"/></items1>
<sum1><xsl:value-of select="sum($testSplitNum1/item)"/></sum1>
<items2><xsl:copy-of select="$testSplitNum2"/></items2>
<sum2><xsl:value-of select="sum($testSplitNum2/item)"/></sum2>
</root>
</xsl:template>
</xsl:stylesheet>
结果(带虚设输入文件)是
<?xml version="1.0" encoding="UTF-8"?>
<root>
<items1>
<item>1</item>
<item>1</item>
<item>0</item>
</items1>
<sum1>2</sum1>
<items2>
<item>3</item>
<item>5</item>
<item>12</item>
</items2>
<sum2>20</sum2>
</root>
1
有一个在XSLT 1.0或XSLT 2.0没有通用的机制,以评估作为字符串值提供的XPath表达式。许多产品都有一个扩展来做到这一点(例如参见saxon:evaluate())。 XSLT 3.0中引入了一个通用机制:xsl:evaluate指令。
相关问题
- 1. 的Javascript评估字符串作为一个比较操作
- 2. io作业操作员没有评估?
- 3. 有没有办法让班级评估为数字?
- 4. 有没有办法将NDB类型作为字符串传递?
- 5. 有没有办法显示ascii作为字符串?
- 6. 有没有一种方法来评估string.contains()方法内的多个字符串?
- 7. 有没有三元操作评估为false的测试用例?
- 8. XSLT字符串操作
- 9. 评估没有评估的字符串:Python
- 10. 有没有办法以编程方式评估一个宏?
- 11. C操作符和评估
- 12. 有没有办法将python字典文字评估为有序的字典?
- 13. 有没有办法将操作符称为双参数闭包?
- 14. 在J中评估一个字符串作为动词
- 15. Squeel评估字符串作为一个的keyPath加入
- 16. 有没有办法打印SEL操作?
- 17. 评估包含在字符串中的运算符的操作
- 18. MATLAB - 有没有办法做一个字符串中使用多个字符串
- 19. 有没有办法做到这一点,而无需评估?
- 20. 有没有办法在可写的()使用字符串作为分隔符() - Julia
- 21. application.worksheetfunction.sum没有评估串
- 22. 有没有办法显示一个字符矩阵作为图像?
- 23. {if}个评估在一个字符串
- 24. 提供了arguement别名没有它评估两个字符串
- 25. 有没有办法根据字符串测试一个int? (Java)
- 26. 有没有办法做一个字符串。分割的空白
- 27. 有没有办法检查一个C#字符串的编码?
- 28. Python字符串匹配(没有字符串操作函数)
- 29. 操作符'+'没有为类型'ListItem'和字符串“”定义,“
- 30. Python - 有没有办法将一个操作(+ - * /)存储在一个列表中或作为一个变量?
作品完美:)谢谢 – Gust 2012-04-12 23:22:43
但只适用于非常有限的表达类! – 2012-04-15 16:54:59