gpt4 book ai didi

java - Java XSLT 转换中 newTransformer 和 newTemplates 的区别

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:35:05 24 4
gpt4 key购买 nike

在 Java 中,来自 TransformerFactory用于创建对象来处理 XSLT,它具有以下方法:

  • newTransformer 创建 Transformer 对象,可以将 XML 转换为结果。
  • newTemplates 创建 Templates 对象,该对象可以创建 Transformer

Transformer 的文档明确指出:

A Transformer may be used multiple times.

我的应用程序使用相同的 XSLT 处理各种不同的 XML。在程序开始时,我使用 newTransformer 创建一个 Transformer,然后将它重新用于所有 XML(确保它是同步的,所以我只在一个线程中使用它;并在每次处理之前调用其 reset() 方法。)。

这样我就不会为我处理的每个 XML 重新编译 XSLT 产生成本。

那么 newTemplatesTemplates 对象有什么意义呢?我应该改用它,并为每个 XML 创建一个新的 Transformer 对象吗?

最佳答案

主要区别在于 Templates 是线程安全的而 Transformer 不是。此外,文档暗示可以在创建 Templates 实例期间应用性能优化。因此,Templates 实例的初始创建可能成本更高,但它的实际使用可以提供性能提升。如果您已经不得不手动管理同步和重置,我想说 Templates 正在恳求您的注意...

关于java - Java XSLT 转换中 newTransformer 和 newTemplates 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5278137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com