Java tutorial
//package com.java2s; /** * Copyright (c) 2014-2015 by Wen Yu. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Any modifications to this file must keep this entire header intact. * * Change History - most recent changes go on top of previous changes * * StringUtils.java * * Who Date Description * ==== ========= ===================================================== * WY 09Apr2015 Added null check to findAttribute() * WY 03Mar2015 Added serializeToString() and serializeToByteArray() * WY 27Feb2015 Added findAttribute() and removeAttribute() * WY 23Jan2015 Initial creation - moved XML related methods to here */ import java.io.IOException; import java.io.StringWriter; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.ls.DOMImplementationLS; import org.w3c.dom.ls.LSOutput; import org.w3c.dom.ls.LSSerializer; public class Main { /** * Serialize XML Document to string using DOM Level 3 Load/Save * * @param doc XML Document * @return String representation of the Document * @throws IOException */ public static String serializeToStringLS(Document doc) throws IOException { return serializeToStringLS(doc, doc); } /** * Serialize XML Document to string using DOM Level 3 Load/Save * * @param doc XML Document * @param node the Node to serialize * @return String representation of the Document * @throws IOException */ public static String serializeToStringLS(Document doc, Node node) throws IOException { String encoding = doc.getInputEncoding(); if (encoding == null) encoding = "UTF-8"; return serializeToStringLS(doc, node, encoding); } /** * Serialize XML Node to string * <p> * Note: this method is supposed to be faster than the Transform version but the output control * is limited. If node is Document node, it will output XML PI which sometimes we want to avoid. * * @param doc XML document * @param node Node to be serialized * @param encoding encoding for the output * @return String representation of the Document * @throws IOException */ public static String serializeToStringLS(Document doc, Node node, String encoding) throws IOException { DOMImplementationLS domImpl = (DOMImplementationLS) doc.getImplementation(); LSSerializer lsSerializer = domImpl.createLSSerializer(); LSOutput output = domImpl.createLSOutput(); output.setEncoding(encoding); StringWriter writer = new StringWriter(); output.setCharacterStream(writer); lsSerializer.write(node, output); writer.flush(); return writer.toString(); } }