参数中的 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 的上下文中。
我找到了一种使用以下代码在模板之间传递一系列值的方法:
<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 theselect
attribute.
不确定为什么需要避免 select
属性。事实上,我认为它更可取。
但要回答您的问题,您可以使用 xsl:sequence
。
当然,这都是在 XSLT 2.0 的上下文中。