我在一个用于转换XML的XSLT文件中有一个名为event
的参数,其值为event_val
。
我想获得<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>
。
代码如下:
{{1}}
答案 0 :(得分:3)
参数的内容是字符串,而不是 XPath表达式。如果您有一个名为“param”的参数并且它包含字符串“last_name”,那么指令:
<xsl:value-of select="param"/>
将被评估为:
<xsl:value-of select="'last_name'"/>
导致输出文字字符串“last_name”。
将参数传递给变量没有任何区别,完全是多余的。尝试改为:
<xsl:value-of select="*[local-name() = $param]"/>
如果要获取名为“last_name”的节点的内容。或者(最好是恕我直言)找到一些其他(不太尴尬)的方式来处理这个问题。