XSL:使用相同的XPath-expression匹配两个模板,但在其他模板中匹配不同的代码

时间:2014-06-20 07:35:29

标签: templates xslt xpath xslt-2.0

我知道,当我指定该子模板的XPath表达式时,我可以在另一个模板中调用xsl:apply-templates。

在我的xsl文件中,我得到了一个

<xsl:template match="/">
    <xsl:apply-templates select="root/values" />
</xsl:template>

<xsl:template match="root/values>
    <xsl:value-of select="value/key" />
</xsl:template>

现在我想在另一个上下文中再次使用root / values的子节点 - 如何在我的主模板中匹配此模板?

<xsl:template match="root/values>
    <xsl:for-each select="value">
        <xsl:value-of select="key" />
    </xsl:for-each>
</xsl:template>

1 个答案:

答案 0 :(得分:2)

我想你想使用一种模式:

<xsl:template match="/">
    <xsl:apply-templates select="root/values" />
    <xsl:apply-templates select="root/values" mode="m1" />
</xsl:template>

<xsl:template match="root/values>
    <xsl:value-of select="value/key" />
</xsl:template>

<xsl:template match="root/values" mode="m1">
    <xsl:for-each select="value">
        <xsl:value-of select="key" />
    </xsl:for-each>
</xsl:template>