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