Existe-t-il un moyen plus élégant de convertir un document XML en une chaîne en Java que ce code?

Voici le code actuellement utilisé.

public Ssortingng getSsortingngFromDoc(org.w3c.dom.Document doc) { try { DOMSource domSource = new DOMSource(doc); SsortingngWriter writer = new SsortingngWriter(); StreamResult result = new StreamResult(writer); TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = tf.newTransformer(); transformer.transform(domSource, result); writer.flush(); return writer.toSsortingng(); } catch(TransformerException ex) { ex.printStackTrace(); return null; } } 

Se base sur DOM Level3 Load / Save :

 public Ssortingng getSsortingngFromDoc(org.w3c.dom.Document doc) { DOMImplementationLS domImplementation = (DOMImplementationLS) doc.getImplementation(); LSSerializer lsSerializer = domImplementation.createLSSerializer(); return lsSerializer.writeToSsortingng(doc); } 

Ceci est un peu plus concis:

 try { Transformer transformer = TransformerFactory.newInstance().newTransformer(); StreamResult result = new StreamResult(new SsortingngWriter()); DOMSource source = new DOMSource(doc); transformer.transform(source, result); return result.getWriter().toSsortingng(); } catch(TransformerException ex) { ex.printStackTrace(); return null; } 

Sinon, vous pouvez utiliser une bibliothèque comme XMLSerializer de Apache:

 //Serialize DOM OutputFormat format = new OutputFormat (doc); // as a Ssortingng SsortingngWriter ssortingngOut = new SsortingngWriter (); XMLSerializer serial = new XMLSerializer (ssortingngOut,format); serial.serialize(doc); // Display the XML System.out.println(ssortingngOut.toSsortingng()); 

L’API du transformateur est le seul moyen XML standard de transformer un object DOM en un formulaire sérialisé (Ssortingng dans ce cas). En tant que norme, je veux dire API XML Java SUN pour le traitement XML .

D’autres alternatives telles que Xerces XMLSerializer ou JDOM XMLOutputter sont des méthodes plus directes (moins de code) mais elles sont spécifiques à la structure.

À mon avis, la façon dont vous avez utilisé est la plus élégante et la plus portable de tous. En utilisant une API Java XML standard, vous pouvez twigr XML-Parser ou XML-Transformer de votre choix sans modifier le code (identique aux pilotes JDBC). Y a-t-il quelque chose de plus élégant que ça?

Vous pouvez utiliser XOM pour faire ceci:

 org.w3c.dom.Document domDocument = ...; nu.xom.Document xomDocument = nu.xom.converters.DOMConverter.convert(domDocument); Ssortingng xml = xomDocument.toXML();