如何在XSLT中将变量转换为元素名称?

时间:2012-07-09 11:56:16

标签: xml xslt

抱歉,我无法理解这一点:

有没有办法改变这个......

<xsl:value-of select="concat('name-', $language)" />

......进入这个:

<xsl:value-of select="name-en" />

感谢您的帮助!

4 个答案:

答案 0 :(得分:2)

<xsl:value-of select='*[name() = concat("name-", $language)]' />

<强> Live demo

答案 1 :(得分:0)

试试这个

 <xsl:variable name="name-en" select="concat('name-', $language)">
 </xsl:variable>

答案 2 :(得分:0)

我认为你实际上意味着实现相当于......

<xsl:value-of select="'name-en'" />

(注意'name-en'周围的引号。)如果这不是您的意图,请告诉我。

只需将$ language变量的值设置为'en',就像这样......

<xsl:variable name="language" select="'en'" />

很明显,如果您使用的是XSLT 2.0而不是1.0,则可以缩写...

<xsl:value-of select="concat('name-', $language)" />

...进入....

<xsl:value-of select="'name-', $language" />

好的!

答案 3 :(得分:0)

仅根据标题判断

  

如何在XSLT中将变量放入元素名称?

答案是

<xsl:element name="{$theVariable}"/>

这会生成一个元素,其名称是$theVariable变量的值。

在您的具体案例中使用

<xsl:element name="name-{$language}"/>

<强>解释

正确使用 <xsl:element> AVT (属性值模板)。