Document XML à chaîne


Quel est le moyen le plus simple d'obtenir la représentation de chaîne d'un document XML (org.w3c.dom.Document)? C'est tous les nœuds seront sur une seule ligne.

À titre d'exemple, à partir de

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

(ce n'est qu'une représentation arborescente, dans mon code c'est un objet org.w3c.dom.Document, donc je ne peux pas le traiter comme une chaîne)

À

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

Merci!

Author: bluish, 2011-03-28

3 answers

En Supposant que doc est votre instance 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

Utiliser Apache XMLSerializer

Voici un exemple: http://www.informit.com/articles/article.asp?p=31349&seqNum=3&rl=1

Vous pouvez également vérifier cela

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

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

Vous devez d'abord vous débarrasser de tous les caractères de saut de ligne dans tous vos nœuds de texte. Ensuite, vous pouvez utiliser une transformation d'identité pour générer votre arborescence DOM. Regardez le javadoc pour TransformerFactory#newTransformer().

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