我是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
还有其他选择吗?
答案 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
节点的内容,那就太麻烦了,而且很可能有更好的方法去做你想做的事情。