我正在研究 XSLT 样式表。我有一个节点(节点 A)和一堆孩子,我正在循环另一个节点(节点 B)的孩子。每次节点 B 的子节点也是节点 A 的子节点时,我都在尝试做一些事情,所以我有以下代码:
<xsl:if test="$prodbins/bin[./text()=/root/Line[1]/Element[6]/text()]">
但这不起作用(测试失败;表达式返回 false),即使表达式的左侧和右侧在单独评估时相等。
但是当我这样做时:
<xsl:variable name="curbin" select="/root/Line[1]/Element[6]/text()"/>
<xsl:if test="$prodbins/bin[./text()=$curbin]">
该表达式的计算结果为真。为什么我必须使用 $curbin 变量来获得我期望的结果?