2013-04-25 13 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)" />