Java tutorial
//package com.java2s; import java.io.StringWriter; import java.io.Writer; import java.util.HashMap; import java.util.Map; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.TransformerFactoryConfigurationError; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Node; public class Main { /** * Converts an XML node to a string. * @param node the XML node * @return the string */ public static String toString(Node node) { return toString(node, new HashMap<String, String>()); } /** * Converts an XML node to a string. * @param node the XML node * @param outputProperties the output properties * @return the string */ public static String toString(Node node, Map<String, String> outputProperties) { try { StringWriter writer = new StringWriter(); toWriter(node, writer, outputProperties); return writer.toString(); } catch (TransformerException e) { //should never be thrown because we're writing to a string throw new RuntimeException(e); } } /** * Writes an XML node to a writer. * @param node the XML node * @param writer the writer * @throws TransformerException if there's a problem writing to the writer */ public static void toWriter(Node node, Writer writer) throws TransformerException { toWriter(node, writer, new HashMap<String, String>()); } /** * Writes an XML node to a writer. * @param node the XML node * @param writer the writer * @param outputProperties the output properties * @throws TransformerException if there's a problem writing to the writer */ public static void toWriter(Node node, Writer writer, Map<String, String> outputProperties) throws TransformerException { Transformer transformer; try { transformer = TransformerFactory.newInstance().newTransformer(); } catch (TransformerConfigurationException e) { //no complex configurations throw new RuntimeException(e); } catch (TransformerFactoryConfigurationError e) { //no complex configurations throw new RuntimeException(e); } for (Map.Entry<String, String> property : outputProperties.entrySet()) { try { transformer.setOutputProperty(property.getKey(), property.getValue()); } catch (IllegalArgumentException e) { //ignore invalid output properties } } DOMSource source = new DOMSource(node); StreamResult result = new StreamResult(writer); transformer.transform(source, result); } }