我正在做一些非常复杂的 XSLT 1.0 转换(目前使用 8 个 XSLT 通道)。我想组合这 8 个通道而不将它们合并到一个文件中(这太复杂了)。我的解决方案是使用xsl:include
并exsl:node-set
合并通行证并将临时结果存储在变量中。
但是我有一个问题:我的转换传递复制了大部分节点并且只修改了某些方面。因此,我需要在每次传递中处理相同的节点,但使用不同的 xsl:template
!但是我该怎么做呢?如何判断在第一次通过后我想应用来自其他 XSLT 样式表的模板?
我目前正在做的非常简化的示例(2 XSLT 通过):
来源:
<h>something here</h>
在 XSLT 通过 1 之后:
<h someattribute="1">something here</h>
在 XSLT 通过 2 之后:
<h someattribute="1" somemoreattribute="2">something here, and even more</h>
我目前的方法是调用 XSLT 处理器两次并将结果临时保存在磁盘上:
xsltproc stylesheet1.xsl input.xml >temp.xml
xsltproc stylesheet2.xsl temp.xml >finalresult.xml