Documento em XML para o texto

Qual é a maneira mais simples de obter a representação de texto de um documento XML (org.w3c.dom.Document)? Isto é tudo nós estarão em uma única linha.

como exemplo, de

<root>
  <a>trge</a>
  <b>156</b>
</root>

(isto é apenas uma representação em árvore, no meu código é um objecto org.w3c.dom.Document, por isso não posso tratá-lo como uma String) {[[6]}

a

"<root> <a>trge</a> <b>156</b> </root>"
Obrigado!

Author: bluish, 2011-03-28

3 answers

Assumindo que doc é o teu caso de org.w3c.dom.Document:

TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
StringWriter writer = new StringWriter();
transformer.transform(new DOMSource(doc), new StreamResult(writer));
String output = writer.getBuffer().toString().replaceAll("\n|\r", "");
 181
Author: WhiteFang34, 2011-03-28 09:11:55

Usar o Xmlserializador Apache

Aqui está um exemplo.: http://www.informit.com/articles/article.asp?p=31349&seqNum=3&rl=1

Também pode verificar isto

Http://www.netomatix.com/XmlFileToString.aspx

 2
Author: GuruKulki, 2011-03-28 09:03:19

Primeiro você precisa se livrar de todos os caracteres newline em todos os seus nós de texto. Então você pode usar uma transformada de identidade para output sua árvore DOM. Olha para o javadoc para {[[0]}.

 1
Author: forty-two, 2012-03-22 10:52:49