1

我需要为这样的变量连接路径:

<xsl:variable name="foo" select="concat(//field_path_,$parameter,/data/*)" />

不能那样工作。

期望$parameter = "parametervalue"的结果如下所示:

<xsl:variable name="foo" select="//field_path_parametervalue/data/*" />

正确的方法是什么?

4

1 回答 1

4
<xsl:variable name="foo" 
  select="//*[name()=concat('field_path_',$parameter)]/data/*" />

或者也许更好地使用密钥。请注意,XPath 表达式是值而不是表达式片段,您不能通过字符串连接来构建表达式,就像您可以通过在 C 或 Java 等中连接字符串“x”和“+1”来增加变量 x 一样。(XSLT 3 建议一个评估函数,它确实将字符串评估为 xpath 表达式,但您仍然必须调用显式评估函数。)

于 2013-06-09T21:32:21.630 回答