3

我有一个用这个撒克逊命令创建的编译样式表:

java net.sf.saxon.Compile [选项] 样式表输出 [参数…]

我现在想将此样式表应用到我的 Java 代码中的 XML 树。是否可以使用 JAXP API 来做到这一点,如果可以,具体如何?非常感谢您对此的任何帮助。

4

1 回答 1

4

首先,请注意,该设施并不总是能满足人们的需求。有很多限制——你可以在你的样式表中做一些阻止它被编译的事情。许多人在使用此功能时的性能预期并未得到满足。因此,在 Saxon 9.4 中,我们完全撤回了它。

运行已编译的样式表时,最大的限制是它不能与其他任何东西共享配置 - 它必须独立运行。这是 NamePool 工作方式的结果。因此,如果您尝试从 Java API 执行此操作,那么您有责任将其做好。

加载已编译样式表的关键是静态方法

PreparedStylesheet.loadCompiledStylesheet()

使用 JAXP 接口无法做到这一点。然而,它返回一个 PreparedStylesheet 对象,它是 Saxon 对 JAXP 模板对象的实现,一旦你得到了这个,你就可以使用 JAXP 接口来创建一个 Transformer 并运行一个转换。

于 2012-12-20T22:50:55.217 回答