0

我是 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
4

1 回答 1

0

我看不出有任何明显的原因:这可能意味着解释位于您没有向我们展示的代码部分的某个地方。您能否发布一个完整的工作示例来演示该问题,最好不使用 msxsl:node-set()?

于 2012-06-11T07:56:00.057 回答