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!
87
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=1Também pode verificar isto
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