2012-07-09 47 views
1

對不起,我不能讓我的頭圍繞這一點:如何在XSLT中獲取變量到元素名稱?

有沒有辦法把這個...

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

...這個:

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

感謝您的幫助!

+0

您是否想要輸出文字字符串'name-en'?或者名稱爲的元素的值? – 2012-07-09 12:51:55

回答

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

Live demo

0

試試這個

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

我假設你其實是要達到相當於...

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

(注意周圍'引號name-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" /> 

尼斯一個!

0

由標題就判斷:

如何獲得一個變量進入XSLT元素名?

答案是

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

這生成的元素,其名稱是$theVariable變量的值。

在特定情況下使用

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

說明

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

+0

但我懷疑所需的元素名稱是輸入中的元素,而不是輸出中的元素。 – 2012-07-09 13:19:12

+0

@MichaelKay:標題說:...將一個變量*變成*一個元素名稱。 – 2012-07-09 13:21:26

+0

是的,邁克爾是對的。但是,無論如何感謝Dimitre! – Tintin81 2012-07-09 14:28:12