2011-04-20 69 views
1

比方说,我有在XSLT变量的xsl:元素

<xsl:variable name="groupedOrLinked"> 
    <xsl:choose> 
    <xsl:when test="Field[@key='X']='80'">Grouped</xsl:when> 
    <xsl:when test="Field[@key='X']='00'">Linked</xsl:when>  
    </xsl:choose> 
</xsl:variable> 

定义这样的变量有没有办法在<xsl:element> name属性来使用这个变量?以下行不起作用:

<xsl:element name="$groupedOrLinked"> 
    ... 
</xsl:element> 

回答

2

你缺少{}
你应该使用

<xsl:element name="{$groupedOrLinked}"> 
[...] 
</xsl:element> 
+0

权!我忘了大括号。 – Lukasz 2011-04-20 13:50:26

+1

+1正确答案:从http://www.w3.org/TR/xslt#attribute-value-templates:_“在XSLT样式表的属性值中不识别花括号,除非该属性被明确声明为一个被解释为一个属性值模板;在一个元素语法摘要中,这些属性的值被大括号包围。“_而且从http://www.w3.org/TR/xslt#section-Creating-Elements -with-xsl:element:'<! - Category:instruction - ><! - Content:template - - >' – 2011-04-20 22:44:54