我有一个 XSL 文件(template.xsl),如下所示:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="1.xsl" />
<xsl:import href="2.xsl" />
<xsl:import href="3.xsl"/>
<xsl:import href="4.xsl"/>
...
该文件在我测试过的所有非webkit浏览器上都没有任何问题。但是我希望它也能在webkit浏览器上正常工作。因此,我需要一种方法将所有 xsl:import 合并到主文件中。这样,我就可以看看是否解决了问题。我已经阅读了其他线程提供的解决方案,例如:递归合并多个XSLT样式表。我可以看到,所提供的解决方案在服务器端使用这个样式表脚本:
<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="xsl:include">
<xsl:apply-templates select="document(@href)/xsl:stylesheet/*"/>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
虽然我不知道如何使用它(除了将我的xsl:import替换为xsl:include)。我应该把它放在哪个位置的template.xsl文件上呢?我是否需要在一个新的XSL文件中使用PHP脚本来加载它,以合并XSL文件。如果能提供一个例子就更好了。结果我需要的是服务于浏览器的单个无包含/导入的XSLT。我想要一个经过合并后可以保存的XSL文件,因此我可以摆脱其他文件。除非必须合并文件服务器端,否则我不想合并文件服务器端。所以,如果有一个合并文件的工具,那也可以。谢谢。