我必须将org.w3c.dom.Document转换成
java.lang.String.我发现了两种可能的方法,一种是使用org.w3c.dom.ls.LSSerializer,另一种使用javax.xml.transform.Transformer.我有下面的样本.
谁能告诉我哪种方法是首选?
public String docToStringUsingLSSerializer(org.w3c.dom.Document doc) { DOMImplementationRegistry reg = DOMImplementationRegistry.newInstance(); DOMImplementationLS impl = (DOMImplementationLS) reg.getDOMImplementation("LS"); LSSerializer serializer = impl.createLSSerializer(); return serializer.writetoString(doc); } public String docToStringUsingTransformer(org.w3c.dom.Document doc) { Transformer transformer = TransformerFactory.newInstance().newTransformer(); StringWriter stw = new StringWriter(); transformer.transform(new DOMSource(doc),new StreamResult(stw)); return stw.toString(); }
解决方法
有几点需要考虑:
> LSSerializer通常被认为比变压器更快.
>然而,它在很大程度上取决于实现.基于SAX的变压器将具有良好的性能.而且有不同的实现者(Xalan,Xerces,…).
>在系统中检查哪个更好,这是非常容易的.用复杂的XML设计一个简单的测试用例.在一个循环中运行它的时间,包含时间检查(Syste.getCurrentMilliseconds或某事),你有一个答案.
>其他好的答案包括:
> Is there a more elegant way to convert an XML Document to a String in Java than this code?
> https://stackoverflow.com/questions/1137488/ways-of-producing-xml-in-java
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。