msxsl:节点集奇怪的行为

时间:2012-06-11 06:21:31

标签: .net xslt

我是xslt的新手并且正在获得以下行为。尝试使用具有模式条件的节点集来计算项目时,我得到不同的结果。结果的变化取决于我是否将条件的值转换为字符串,如下所示。一些专家可以帮助解释造成这种行为的原因。

 <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

1 个答案:

答案 0 :(得分:0)

我看不出任何明显的原因:这可能意味着解释位于您未向我们展示的代码部分。您是否可以发布一个演示问题的完整工作示例,理想情况下不使用msxsl:node-set()?