1

在这里寻找一些指导。我希望将 xsl 管道组合成一个样式表。

让我提供一点背景。可以获取一个 xml 文件,并通过一系列转换将其传递,以获得一些结果,因此:

a.xml -> AB.xsl -> BC.xsl -> CD.xsl = d.xml

当然,在服务器端执行此操作非常简单,但我想在客户端执行此操作。我知道我不能依靠浏览器来做到这一点(因为这个),所以我想提出一个组合转换,如下所示:

a.xml -> (AB.xsl -> BC.xsl -> CD.xsl) = d.xml
a.xml -> AD.xsl = d.xml

我知道编写 xsl 的技术,其中中间结果被放入 variables ,然后用 node-set() 提取(我找到的最佳描述是here),但我想避免这种情况,因为我得到的印象是对节点集的支持有点不完整(我可能支持一些非常有问题的客户端!)

但在我看来,如果(如维基百科声称的那样)xslt 是图灵完备的,那么应该可以将两个或多个转换组合成一个单一的转换,即使结果比流水线化单个转换要复杂一些。一些摆弄表明,至少对于简单的情况,可以简单地使用另一个 xsl 转换一个 xsl,然后将它们合并在一起以获得一个中途合理的结果(尽管我很确定有很多陷阱在等待!)但是,我无法在任何地方找到任何解决此问题的方法(这让我感到惊讶,因为即使它不可能或结果证明效率非常低,我认为它至少可以证明一篇论文是合理的或两个)。

那么,有没有人听说过这样的事情,并且可以指出我正确的方向?即使是 xslt 的图灵完备性的证明也可能让我朝着正确的方向前进。如果可以的话,我只想避免重新发明轮子。

提前致谢。

4

0 回答 0