Java tutorial
//package com.java2s; /* * This file is part of experimaestro. * Copyright (c) 2014 B. Piwowarski <benjamin@bpiwowar.net> * * experimaestro is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * experimaestro is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with experimaestro. If not, see <http://www.gnu.org/licenses/>. */ import org.w3c.dom.*; import org.w3c.dom.bootstrap.DOMImplementationRegistry; import org.w3c.dom.ls.DOMImplementationLS; import org.w3c.dom.ls.LSSerializer; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import java.io.StringWriter; public class Main { /** * Convert an XML node into a string * * @param node The XML node to convert * @return A string representing the XML element */ static public final String toString(Node node) { return toString(node, false); } static public final String toString(Node node, boolean declaration) { try { DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance(); DOMImplementationLS impl = (DOMImplementationLS) registry.getDOMImplementation("LS"); LSSerializer writer = impl.createLSSerializer(); writer.getDomConfig().setParameter("xml-declaration", declaration); return writer.writeToString(node); } catch (Exception e) { return e.toString(); } } public static String toString(NodeList nodes) { try { StringWriter stw = new StringWriter(); Transformer serializer = TransformerFactory.newInstance().newTransformer(); for (int i = 0; i < nodes.getLength(); i++) { Node item = nodes.item(i); switch (item.getNodeType()) { case Node.TEXT_NODE: stw.append(item.getTextContent()); break; default: serializer.transform(new DOMSource(item), new StreamResult(stw)); } } return stw.toString(); } catch (Exception e) { return e.toString(); } } }