2012-06-11 68 views
0

我是新來的xslt,並獲得以下行爲。嘗試使用具有模式條件的節點集對項目進行計數時,會得到不同的結果。如果我將條件的值轉換爲字符串或不如下,結果會發生變化。有些專家可以幫助解釋導致此行爲的原因嗎?msxsl:節點設置的奇怪行爲

<xsl:for-each .... 

    //there is two area that why we need the position()=1 
    <xsl:variable name="checkLocation" select="area[position()=1]" /> 

方案A - 錯誤的結果

<xsl:value-of select="count(msxsl:node-set($allItems)//item[area[position()=1] = $checkLocation])"/> will show 10 

方案B - 鑄造左側條件轉換成字符串

<xsl:value-of select="count(msxsl:node-set($allItems)//item[string(area[position()=1]) = $checkLocation])"/> will show show 1 

回答

0

我看不到這方面的任何明顯的原因後,正確的結果:這可能意味着解釋存在於你沒有向我們展示過的代碼中。你可以發佈一個完整的演示問題的工作示例,最好不使用msxsl:node-set()?