我正在尝试遍历项目,重复删除这些项目,总结它们的价值,并显示该项目。
我是xsl的新手并拥有良好的基础,但无法获得总和值。
任何帮助都会很棒。目前,我需要将模板值拉入$ totalvalue变量的位置。
{{1}}
提供的xml格式为:
{{1}}
答案 0 :(得分:0)
要使用Muenchian分组,如果要获得不同的“imageurl”,首先要定义一个键:
<xsl:key name="prop" match="Prop[@prop_name = 'imageurl']" use="@val" />
然后,表达式得到不同的(或更确切地说,Prop
元素,每个可能的第一次出现@val
),就像这样
<xsl:variable name="distinct" select="//Prop[@prop_name = 'imageurl'][generate-id() = generate-id(key('prop', @val)[1])]" />
然后,您可以使用此节点集来获取计数或相邻“tradeval”元素的总和。
试试这个XSLT作为例子
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:key name="prop" match="Prop[@prop_name = 'imageurl']" use="@val" />
<xsl:template match="/">
<xsl:variable name="distinct" select="//Prop[@prop_name = 'imageurl'][generate-id() = generate-id(key('prop', @val)[1])]" />
<xsl:text>You have </xsl:text>
<xsl:value-of select="count($distinct)" />
<xsl:text> distinct imageurl with with a tradeval sum of </xsl:text>
<xsl:value-of select="sum($distinct/../Prop[@prop_name = 'tradeval']/@val)" />
</xsl:template>
</xsl:stylesheet>