我需要为这样的变量连接一个路径:
<xsl:variable name="foo" select="concat(//field_path_,$parameter,/data/*)" />
不能那样工作。
使用
$parameter = "parametervalue"
时,所需结果如下所示:<xsl:variable name="foo" select="//field_path_parametervalue/data/*" />
什么是正确的方法?
最佳答案
<xsl:variable name="foo"
select="//*[name()=concat('field_path_',$parameter)]/data/*" />
或者,最好使用一个密钥。请注意,XPath表达式是值而不是表达式片段,与通过在C或Java等中将字符串“ x”和“ +1”进行串联来增加变量x相比,您不能通过字符串串联来构建表达式。(XSLT 3建议一个将字符串作为xpath表达式求值的评估函数,但仍然必须调用一个显式的评估函数。)
关于xslt - xsl:如何串联变量的路径?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17014304/