que tiene a su vez un org.w3c.dom.Document en un java.lang.String. He encontrado dos enfoques posibles, uno que usa org.w3c.dom.ls.LSSerializer y el otro que usa un javax.xml.transform.Transformer. Tengo muestras de cada uno a continuación.LSSerializer vs Transformador para la serialización XML para cuerdas
¿Alguien me puede decir qué método es el preferido?
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();
}
has encontrado una respuesta, por casualidad, a estas alturas? Me he preguntado la misma pregunta yo mismo. – apines
No recibí ninguna respuesta, y no pude encontrar ningún artículo que prefiriera una u otra. Sin embargo, casi todos los artículos y publicaciones que encontré en la serialización de String usan javax.xml.Transform, por lo que parece ser el enfoque preferido en general. A pesar de eso fui con org.w3c.dom.ls.LSSerializer, y no tengo ningún motivo sólido para darlo. Simplemente me gusta la sensación de "One Stop Shopping" que obtengo usando los paquetes org.w3c.dom. Hasta el momento no tengo nada negativo que informar usando este método. Así que creo que mi respuesta es "Ambos parecen estar bien". –