简化示例:
<xsl:template name="helper"> <xsl:attribute name="myattr">first calculated value</xsl:attribute> </xsl:template> <xsl:template match="/> <myelem> <xsl:call-template name="helper" /> <xsl:attribute name="myattr">second calculated value</xsl:attribute> </myelem> </xsl:template>
有没有办法让第二个将第二个计算值附加到结果节点中的同一个myattr属性?
我已经看到如果目标属性在源xml中,可以使用属性值模板,但是我可以以某种方式引用我之前附加到结果节点的属性的值吗?
提前致谢!
您可以采取的一种方法是向助手模板添加一个参数,该参数将附加到属性值.
<xsl:template name="helper"> <xsl:param name="extra" /> <xsl:attribute name="myattr">first calculated value<xsl:value-of select="$extra" /></xsl:attribute> </xsl:template>
然后您可以将第二个计算值作为参数过去
<xsl:template match="/> <myelem> <xsl:call-template name="helper"> <xsl:with-param name="extra">second calculated value</xsl:with-param> </xsl:call-template> </myelem> </xsl:template>