1

抱歉,我无法理解这个:

有没有办法扭转这个...

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

...进入这个:

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

?

谢谢你的帮助!

4

4 回答 4

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

现场演示

于 2012-07-09T11:57:52.337 回答
0

尝试这个

 <xsl:variable name="name-en" select="concat('name-', $language)">
 </xsl:variable>
于 2012-07-09T11:59:00.487 回答
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" />

好东西!

于 2012-07-09T12:44:55.953 回答
0

单从标题来看

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

答案是

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

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

在您的特定情况下使用

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

说明

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

于 2012-07-09T13:17:16.000 回答