我正在使用单个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>
答案 0 :(得分:2)
你当然可以写
<xsl:param name="type" />
<xsl:template match="a/b[$type = 'XYZ']">...</xsl:template>
<xsl:template match="a/b[$type = 'MNO']">...</xsl:template>