我正在尝试选择一个XSLT文件以应用于我的整个XML输入文件。我不确定该怎么做。我想做的就是这个。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0">
<xsl:import href="a.xslt" />
<xsl:import href="b.xslt" />
<xsl:output method="xml" indent="no" omit-xml-declaration="yes" />
<xsl:template match="/">
<xsl:choose>
<xsl:when test="(/*[local-name()='1'])>
---------Apply file a.xslt here----------
</xsl:when>
<xsl:when test="(/*[local-name()='2'])>
----------Apply file b.xslt here-------------
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
我想根据我的XML输入应用不同的XSLT文件。有什么方法可以做到这一点?
答案 0 :(得分:0)
在XSLT 3.0中,您可以直接使用fn:transform()函数执行此操作。
如果您无法访问XSLT 3.0,通常的解决方案是使用模式:使用不同的模式在a.xslt和b.xslt中定义模板规则,并以适当的模式应用模板。
(偶然地,元素的local-name()
永远不会是数字。)