XSLT模板匹配取决于变量值

时间:2014-09-18 17:54:54

标签: xml xslt xslt-2.0

我正在使用单个xsl文件处理多个xml文件,即使它们具有相同的结构,也需要以不同方式处理某些文件。由于文件数量很大而且需要以不同方式处理的部分只是几个节点,休息是相同的,我想保留一个xsl样式表。我在外部设置一个param,它告诉我们正在处理什么类型的文件;有了这些信息,我如何针对不同的文件以不同的方式对同一节点进行<template match.../>

编辑:我想到了这样的事情,我知道如果不能在内部进行模板匹配,

  <xsl:param name="type" /> <!-- this is set externally -->
    <xsl:if test="$type = 'XYZ'">
        <xsl:template match="a/b">
         ....
    </xsl:if>

    <xsl:if test="$type = 'MNO'">
        <xsl:template match="a/b">
         ....
    </xsl:if>

1 个答案:

答案 0 :(得分:2)

你当然可以写

<xsl:param name="type" />

<xsl:template match="a/b[$type = 'XYZ']">...</xsl:template>

<xsl:template match="a/b[$type = 'MNO']">...</xsl:template>