我需要为这样的变量连接一个路径:
<xsl:variable name="foo" select="concat(//field_path_,$parameter,/data/*)" />
不能那样工作。
使用$parameter = "parametervalue"
,所需的结果如下所示:
<xsl:variable name="foo" select="//field_path_parametervalue/data/*" />
这样做的正确方法是什么?
答案 0 :(得分:3)
<xsl:variable name="foo"
select="//*[name()=concat('field_path_',$parameter)]/data/*" />
或者更好地使用密钥。请注意,XPath表达式是值而不是表达式片段,您不能通过字符串连接构建表达式,只能通过在C或Java等中连接字符串“x”和“+1”来增加变量x(XSLT 3建议)一个evaluate函数,它将字符串计算为xpath表达式,但仍然需要调用一个显式的evaluate函数。)