0

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

如何才能做到这一点?

这是一个无效的示例,但给出了我想要做什么的想法。

<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>
4

1 回答 1

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>
于 2013-02-22T10:40:26.377 回答