2013-04-25 14 views
1

我需要设置一个变量,它是“行项目”中的每个订单在以下for-each环的总人数:设置计数中的项目数的变量的for-each在XSLT循环

<xsl:for-each select="Customer/Order/Item"> 
</xsl:for-each> 

例如,如果订单有:

1X SKI GLOVES $4.99 

3X TACOS $5.99 

2X SNOWBOARDS $6.99 

因此,在这个顺序订单项数为3

我想的变量输出“3”。我将使用这个变量在for-each环路分割另一个号码......基本上我寻找的东西的行项目的数量输出到一个变量。它可能应该是这样的:

<xsl:for-each select="Customer/Order/Item"> 
<xsl:variable name="lineitemqty" select="# OF LINE ITEMS" /> 
<xsl:value-of select="$lineitemqty" /><xsl:text>&#9;</xsl:text>  
</xsl:for-each> 

$lineitemqty = 3如果环路处理上面的命令......

+1

可否请你添加一个例子输入XML。如果想在一个命令中计算Itemes,它将会像'', – 2013-04-25 21:06:02

+0

[count()function] [1 ]工作? [1]:http://stackoverflow.com/questions/721963/xslt-counting-elements-with-a-given-value – Jay 2013-04-25 21:18:30

+0

感谢@ hr_117奏效!我只需要使用 ... – Brandon 2013-04-25 21:23:49

回答

0

只需使用(环外):

<xsl:variable name="lineitemqty" select="Customer/Order/Item"/> 

如果你想知道的循环这里面号码,只需引用(外级)可变$lineitemqty

或者,循环内部,你可以使用函数last():因为你是遍历所有项目(所有的订单,并为所有客户)

<xsl:variable name="lineitemqty" select="last()"/> 
1

和(我的理解)你喜欢知道有多少物品属于当前订单,这就是您要查找的内容。

<xsl:variable name="lineitemqty" select="count(../Item)" />