读书人

请教XSL中怎么实现在for-each中的节点

发布时间: 2012-02-24 16:30:38 作者: rapoo

请问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> 

读书人网 >XML SOAP

热点推荐