【发布时间】:2014-01-04 02:10:57
【问题描述】:
我在 xslt 1.0 中使用 sum() 函数时遇到问题。简而言之:我想对 L_AMOUNT 节点中的值求和。
这是我的 xml:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="XX_EXEC_PRINT_DOCUMENT.xsl"?>
<ROWSET>
<ROW>
<LINES>
<LINES_ROW>
<L_AMOUNT>330,00</L_AMOUNT>
</LINES_ROW>
<LINES_ROW>
<L_AMOUNT>995 650,00</L_AMOUNT>
</LINES_ROW>
</LINES>
</ROW>
</ROWSET>
以及 xsl 文件的重要部分:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns="http://www.w3.org/1999/xhtml">
<xsl:output method="html"/>
<xsl:template match="*">
<html>
<body class="OraBody">
<xsl:value-of select="sum(translate(translate(ROW/LINES/*/L_AMOUNT,' ',''),',','.'))"/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
如您所见,我试图截断其间的所有空格并用点替换逗号。但是,Firefox 解析器说 XPath 表达式应该返回 NodeSet。 translate 函数返回的数字是值而不是节点,因此错误很明显。但是我该怎么做呢?我没有想法......
【问题讨论】: