抱歉,我无法理解这个:
有没有办法扭转这个...
<xsl:value-of select="concat('name-', $language)" />
...进入这个:
<xsl:value-of select="name-en" />
?
谢谢你的帮助!
<xsl:value-of select='*[name() = concat("name-", $language)]' />
尝试这个
<xsl:variable name="name-en" select="concat('name-', $language)">
</xsl:variable>
我假设您实际上打算达到...的等价物
<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" />
好东西!
单从标题来看:
如何将变量放入 XSLT 中的元素名称?
答案是:
<xsl:element name="{$theVariable}"/>
这会生成一个元素,其名称是$theVariable
变量的值。
在您的特定情况下使用:
<xsl:element name="name-{$language}"/>
说明:
正确使用<xsl:element>
和AVT(属性值模板)。