如何在XSLT中为不同的环境设置配置变量?

时间:2020-07-14 11:22:09

标签: xslt xslt-1.0

我们有一个使用XSLT的网站。有一个config.xslt文件,它声明了一些全局变量,并且包含在许多其他样式表中。问题是,我们将网站托管在几个不同的位置,并根据环境调整其中一些变量。

通常,我们将创建一个主配置文件和一个本地配置文件,以使本地更改不受版本控制。本地配置文件可以覆盖它需要的任何变量,而无需修改主配置文件。但是,据我了解,在XSLT中这是不可能的,因为XSLT变量只能声明一次,并且您无法检查它们是否已经声明。

然后我的问题是:是否可以在XSLT中实现这样的事情?

如果没有,什么是管理我们配置的更好方法?

编辑: 感谢Martin Honnen建议使用xsl:import。我已经查找了如何使用导入,它可以完成我想要的操作。但是,这给我带来了另一个问题,即本地配置文件必须始终存在,否则整个应用程序将中断。由于我想从版本控制中删除本地配置文件,因此它并不完全理想。我找到了this答案,但这是针对xslt-2.0的,不幸的是我坚持使用xslt-1.0。

1 个答案:

答案 0 :(得分:1)

我可以提出两个选择。

  1. 在进行转换之前,将配置作为参数添加到XSL转换器。如何做取决于您使用的变压器。配置可以是XML或一组名称=值对。

  1. 使用config.xml文件在XSLT顶部填充xsl:param。使用document()读取值。像这样:
9999.99

(如果执行此操作,则配置将始终至少为