XSLT模板匹配取决于变量值



我用一个xsl文件处理多个xml文件,有些文件需要以不同的方式处理,即使它们具有相同的结构。由于文件的数量很大,需要以不同方式处理的部分只有几个节点,其余的都是一样的,所以我想保留一个xsl样式表。我在外部设置一个参数,告诉正在处理什么类型的文件;有了这些信息,我如何在同一节点上对不同的文件以不同的方式执行<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>

您当然可以编写

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

最新更新