XSL意外令牌$错误异常

时间:2011-08-11 10:56:02

标签: xslt xpath

我是XSL编程的新手。你能帮我解决这个问题吗?

是否可以组合并获取两个xsl:variable的值 例如:

<xsl:variable name="path1" select="//path1"/>
<xsl:variable name="path2" select="//path2/value"/>

然后使用以下方法将它们组合:

<xsl:value-of select ="$path1/$path2"/>

我想通过组合path2的结果从path1获取值 如果我使用上面的代码,我会得到意外的令牌$ error

还有其他选择吗?

1 个答案:

答案 0 :(得分:2)

听起来你可能正在寻找

<xsl:value-of select="concat($path1,$path2)" />

值得指出的是,您实际上并未将路径存储在这些变量中,而是存储这些路径指向的节点。即$path1不包含//path1,但不包含该节点包含的值。

如果您确实想要文本'//path1//path2/value',那么您需要使用

定义路径变量
<xsl:value-of select="path1" select="'//path1'" />
<xsl:value-of select="path2" select="'//path2/value'" />

(注意额外的'表示它是文本值而不是xpath)。在这种情况下,上面的<xsl:value-of语句将为您提供'//path1//path2/value'的输出。

如果你真的想要//path1//path2/value节点的内容,那就太麻烦了,而且很可能有更好的方法去做你想做的事情。