如何从XSLT的多个节点添加值?

时间:2011-01-17 09:10:58

标签: xml xslt xpath

假设我有一个xml文档:

<nutrition>
<food>
<value>2</value>
</food>
<food>
<value>4</value>
</food>
</nutrition>

然后如何使用XSLT添加这两个值,如2 + 4?

我在XSLT中尝试过sum函数,但它在内部标记中不起作用。

2 个答案:

答案 0 :(得分:3)

<xsl:template match="/">
   <xsl:value-of select='sum(nutrition/food/value)'/>
</xsl:template>

答案 1 :(得分:0)

  

然后我如何添加这两个值,   使用XSLT,如2 + 4?

使用

/*/food[1]/value + /*/food[2]/value
  

我在XSLT中尝试过sum函数,但是   它在内部标签中不起作用

您不需要sum()功能只能将两个数字加在一起。只要XML文档中具有所提供XML文档格式的food元素数量很大,使用

sum(/*/food/value)

这是一个非常基本的XPath问题 - 您必须通过简短的教程或更严肃的书籍了解至少XPath和XSLT的基础知识。有关此类教程/书籍的列表,请参阅 this