Adr*_*ith 8 java xml xslt saxon
在Java中,从TransformerFactory用于创建对象到处理XSLT,它具有以下方法:
newTransformer它创建了 Transformer对象,可以将XML转换为结果.newTemplates它创建了Templates可以创建的对象Transformer.Transformer明确说明的文档:
变压器可以多次使用.
我的应用程序使用相同的XSLT处理各种不同的XML.在程序开始时,我用newTransformer它创建一个Transformer然后重新使用它来处理所有XML(确保它是同步的,所以我只在一个线程中使用它;并reset()在每次处理之前调用它的方法.).
这样我就不会为每个XML I进程重新编译XSLT.
那么这个newTemplates和Templates对象的重点是什么?我应该使用它,并Transformer为每个XML 创建一个新对象吗?
主要区别在于Templates线程安全而Transformer不是.此外,文档意味着可以在创建Templates实例期间应用性能优化.因此,Templates实例的初始创建可能会更昂贵,但实际使用可以提供性能提升.如果您已经不得不手动管理同步和重置,我会说Templates请求您的注意......
如果你在单个线程中运行,那么你可能不会注意到很多差异.
性能总是取决于实现而不是API规范.使用Saxon,当您重用Transformer时,它会保留使用doc()函数加载的文档的缓存.这可能是好的或坏的,这取决于下一个转换是否将访问相同的源文档.一般来说,我的建议是为每个转换使用一个新的Transformer,但当然使用相同的Templates对象.
| 归档时间: |
|
| 查看次数: |
5106 次 |
| 最近记录: |