¿Cuál es la forma más sencilla de obtener la representación de cadena de un documento XML ( org.w3c.dom.Document)? Es decir, todos los nodos estarán en una sola línea.
Como ejemplo, de
<root>
<a>trge</a>
<b>156</b>
</root>
(esto es solo una representación de árbol, en mi código es un org.w3c.dom.Documentobjeto, por lo que no puedo tratarlo como una cadena)
a
"<root> <a>trge</a> <b>156</b> </root>"
¡Gracias!

Respuestas:
Suponiendo que
doces su instancia deorg.w3c.dom.Document:fuente
replaceAllprobablemente no es necesario si se agrega otra propiedad de salida:transformer.setOutputProperty(OutputKeys.INDENT, "no");writer.getBuffer().toString()simplemente puede serwriter.toString()OutputKeys.INDENTlínea, porque entonces también puede configurarlo"yes"para mantener el espacio en blanco, si eso es lo que desea (en mi situación, descubrí que simplemente eliminarreplaceAllno funcionó para incluir el espacio en blanco en el cuerda).Utilice Apache XMLSerializer
aquí hay un ejemplo: http://www.informit.com/articles/article.asp?p=31349&seqNum=3&rl=1
también puedes comprobar esto
http://www.netomatix.com/XmlFileToString.aspx
fuente
Primero necesita deshacerse de todos los caracteres de nueva línea en todos sus nodos de texto. Luego, puede usar una transformación de identidad para generar su árbol DOM. Mira el javadoc para
TransformerFactory#newTransformer().fuente