参数中的 XSL 序列

XSL sequence in param

我找到了一种使用以下代码在模板之间传递一系列值的方法:

<xsl:call-template name="myTemplate">
    <xsl:with-param name="myParam" select="@foo, @bar"/>
</xsl:call-template>

因此,在这种情况下,模板 myTemplate 中的参数 myParam 将是一个包含 2 个值的序列。

但是,如果您使用以下代码,它就不起作用:

<xsl:call-template name="myTemplate">
    <xsl:with-param name="myParam">
        <xsl:value-of select="@foo, @bar"/>
    </xsl:with-param>
</xsl:call-template>

结果是 @foo@bar 的简单串联。
我也试过 <xsl:copy-of select="@foo, @bar"/> 但结果是一样的。

所以,有人可以向我解释如何在 <xsl:with-param /> 的内容中传递一系列值,而不是直接通过 select 属性。

谢谢。

can someone explains me how to pass a list of values in the content of <xsl:with-param /> and not directly via the select attribute.

不确定为什么需要避免 select 属性。事实上,我认为它更可取。

但要回答您的问题,您可以使用 xsl:sequence


当然,这都是在 XSLT 2.0 的上下文中。