使用 xslt 中的 select 中的参数值

h-r*_*rai 2 xml xslt parameters select parameter-passing

我有一个名为event的参数,其值event_val在用于转换 XML 的 XSLT 文件中说明。

我想得到,<xsl:value-of select="event_val"/>但结果变换event_val<TimeCommenced>块内。

代码如下:

<xsl:param name="event"/><xsl:template match="/">
<Event>
      <TimeCommenced>
        <xsl:variable name="time_commenced" select="$event"/>
        <xsl:value-of select="$time_commenced"/>
      </TimeCommenced>
</Event>
Run Code Online (Sandbox Code Playgroud)

mic*_*57k 5

参数的内容是字符串,而不是XPath 表达式。如果您有一个名为“param”的参数并且它包含字符串“last_name”,则指令:

<xsl:value-of select="param"/>
Run Code Online (Sandbox Code Playgroud)

将被评估为:

<xsl:value-of select="'last_name'"/>
Run Code Online (Sandbox Code Playgroud)

导致输出文字字符串“last_name”。

将参数传递给变量没有任何区别,而且完全是多余的。尝试改为:

<xsl:value-of select="*[local-name() = $param]"/>
Run Code Online (Sandbox Code Playgroud)

如果要获取名为“last_name”的节点的内容。或者(最好是恕我直言)找到一些其他(不那么尴尬)的方法来处理这个问题。