我用一个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>