按属性值选择XSL节点

时间:2013-06-19 21:06:30

标签: variables xslt attributes comparison value-of

我遇到以下xsl命令的问题:

<xsl:value-of select="./a/b/c[@code='$codeVal']" />

codeVal是一个变量,它保存XML的其他部分中的另一个属性的值。 以上陈述不起作用。调试显示$ codeVal变量确实包含有效/正确的值

但是,如果我硬编码值,那么一切正常

例如,以下语句有效:

<xsl:value-of select="./a/b/c[@code='one']" />
<xsl:value-of select="./a/b/c[@code='two']" />

有人能说出上述陈述的错误吗?

谢谢

1 个答案:

答案 0 :(得分:0)

发现问题,我应该引用没有引号的变量。

而不是单引号中的$ codeVal:

xsl:value-of select="./a/b/c[@code='$codeVal']" />

我应该用以下方式写下声明:

xsl:value-of select="./a/b/c[@code=$codeVal]" />