【发布时间】:2019-04-18 17:22:52
【问题描述】:
我需要根据这个例子对两个数字的乘积相加
<test>
<stop>
<id>1</id>
<unit_id>1</unit_id>
<unit_id>2</unit_id>
</stop>
<stop>
<id>2</id>
<unit_id>1</unit_id>
<unit_id>3</unit_id>
</stop>
<unit>
<id>1</id>
<count>2</count>
<value>1</value>
</unit>
<unit>
<id>2</id>
<count>4</count>
<value>1</value>
</unit>
<unit>
<id>3</id>
<count>2</count>
<value>3</value>
</unit>
我想要得到的结果是下面那个
<test>
<stop>
<id>1</id>
<sum>6</sum>
</stop>
<stop>
<id>2</id>
<sum>10</sum>
</stop>
有什么获取方法的小技巧吗?
我用这个例子试过,但是蜕皮的总和不起作用,只有和或乘法都可以,而不是两者都可以
<xsl:template match="stop">
<xsl:variable name="ship_unit" select="id"/>
<xsl:value-of select="sum(following-sibling::unit[id=$ship_unit]/count*following-sibling::unit[id=$ship_unit]/value)"/>
【问题讨论】:
-
请解释一下您是如何得出
<sum>10</sum>的结果的。我原以为预期的结果是 2 * 1 + 2 * 3 = 8。
标签: xslt xslt-1.0 xslt-grouping