作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是一个尝试重置 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/
我是一名优秀的程序员,十分优秀!