我想用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>
答案 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>