gpt4 book ai didi

java - 如何重置 Transformer 输出属性?

转载 作者:行者123 更新时间:2023-11-30 03:11:30 25 4
gpt4 key购买 nike

这是一个尝试重置 javax.xml.transform.Transformer 的输出属性的小片段。

Transformer transformer = TransformerFactory.newInstance().newTransformer();
Properties originalOutputProperties = transformer.getOutputProperties();

System.out.println("ORIG= " + originalOutputProperties);
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");

System.out.println("BEFORE RESET= " + transformer.getOutputProperties());
transformer.setOutputProperties(originalOutputProperties);

System.out.println("AFTER RESET= " + transformer.getOutputProperties());

这是输出:

ORIG= {}
BEFORE RESET= {encoding=UTF-8}
AFTER RESET= {encoding=UTF-8}

如您所见,原始输出属性不是原始属性。

如何重置输出属性?

编辑
变压器可多次重复使用。在这种情况下,这是我的期望:

ORIG= {}
BEFORE RESET= {encoding=UTF-8}
AFTER RESET= {}

ORIG= {}
BEFORE RESET= {indent=yes, encoding=UTF-8, {http://xml.apache.org/xslt}indent-amount=4, omit-xml-declaration=yes}
AFTER RESET= {}

最佳答案

我要维护的项目依赖于Java 1.6.0_24。调用 TransformerFactory.newInstance().newTransformer() 时,此版本的 Java 返回 com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl 的实例>.

此实现允许重置输出属性一次

我的解决方法是每次需要变压器时从 TransfomerFactory 创建一个新的 Transformer 实例。

关于java - 如何重置 Transformer 输出属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33548905/

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