gpt4 book ai didi

java - 用于将 xml 序列化为字符串的 LSSerializer 与 Transformer

转载 作者:搜寻专家 更新时间:2023-10-30 21:12:10 26 4
gpt4 key购买 nike

我必须将 org.w3c.dom.Document 转换为 java.lang.String。我发现了两种可能的方法,一种使用 org.w3c.dom.ls.LSSerializer,另一种使用 javax.xml.transform.Transformer。我有以下每个 sample 。

谁能告诉我首选哪种方法?

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();
}

最佳答案

有几点需要考虑:

  1. LSSerializer 通常被认为比 Transformer 更快。​​
  2. 然而,它在很大程度上取决于实现。基于 SAX 的 Transformer 将具有良好的性能。并且有不同的实现者(Xalan、Xerces 等)。
  3. 很容易检查您的系统中哪个更好。使用复杂的 XML 设计一个简单的测试用例。在循环中运行它数千次,用时间检查(Syste.getCurrentMilliseconds 或其他东西)包装它,你就会得到答案。
  4. 其他不错的答案包括:

关于java - 用于将 xml 序列化为字符串的 LSSerializer 与 Transformer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8323652/

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