请问XSL中如何实现在for-each中的节点值累加?
举一个例子,for-each中的第一个price属性为5,第二个里面的为7,第三个为4,我要实现转换之后第一个里面的属性值为5,第二个为12,第三个为16,谢谢大家了
[解决办法]
- XML code
<root>{let $sum:=sum(for $s in doc('a.xml')//price return count($s))for $i in 1 to $sum return <totalPrice>{sum(doc('a.xml')//price[position()<=$i])}</totalPrice>}</root>
[解决办法]
- XML code
<?xml version="1.0" encoding="UTF-8" ?><xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:h="http://www.xml.org/pipe/HTTP" > <xsl:output method="xml" indent="yes"/> <xsl:template match="root"> <xsl:copy> <xsl:for-each select="price"> <totalPrice> <xsl:value-of select="sum(preceding-sibling::price|.)"/> </totalPrice> </xsl:for-each> </xsl:copy> </xsl:template> </xsl:stylesheet>