从变量中分配xml元素名称

时间:2013-02-22 10:37:58

标签: xml xslt

我想用param创建一个模板,并使用这个param创建一个具有该名称的元素。

如何做到这一点?

这是一个不起作用的例子,但是我想知道我想做什么。

<xsl:call-template name="parseOneValue">
   <xsl:with-param name="name" select="'addr'" />
</xsl:call-template>

<xsl:template name="parseOneValue">
   <xsl:param name="name"/>
   <xsl:element name="$name">
     <xsl:attribute name="at">local
     </xsl:attribute>
   </xsl:element>
</xsl:template>

1 个答案:

答案 0 :(得分:3)

将XPath表达式分配给XML元素中的属性时,必须用大括号括起XPath表达式,以向XSLT处理器指示必须动态计算该值。

所以正确的模板是:

<xsl:template name="parseOneValue">
   <xsl:param name="name"/>
   <xsl:element name="{$name}">
     <xsl:attribute name="at">local
     </xsl:attribute>
   </xsl:element>
</xsl:template>