/* * Copyright 2005 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.wamblee.xml; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.apache.xml.serialize.OutputFormat; import org.apache.xml.serialize.XMLSerializer; import org.dom4j.DocumentException; import org.dom4j.io.DOMReader; import org.dom4j.io.DOMWriter; import org.w3c.dom.Document; import org.xml.sax.SAXException; /** * Some basic XML utilities for common reoccuring tasks for * DOM documents. */ public final class DomUtils { /** * Disabled default constructor. * */ private DomUtils() { // Empty. } /** * Parses an XML document from a stream. * @param aIs Input stream. * @return */ public static Document read(InputStream aIs) throws SAXException, ParserConfigurationException, IOException { DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); return builder.parse(aIs); } /** * Serializes an XML document to a stream. * @param aDocument Document to serialize. * @param aOs Output stream. */ public static void serialize(Document aDocument, OutputStream aOs) throws IOException { XMLSerializer serializer = new XMLSerializer(aOs, new OutputFormat()); serializer.serialize(aDocument); } /** * Serializes an XML document. * @param aDocument Document to serialize. * @return Serialized document. */ public static String serialize(Document aDocument) throws IOException { ByteArrayOutputStream os = new ByteArrayOutputStream(); serialize(aDocument, os); return os.toString(); } /** * Converts a dom4j document into a w3c DOM document. * @param aDocument Document to convert. * @return W3C DOM document. */ public static Document convert(org.dom4j.Document aDocument) throws DocumentException { return new DOMWriter().write(aDocument); } /** * Converts a W3C DOM document into a dom4j document. * @param aDocument Document to convert. * @return Dom4j document. */ public static org.dom4j.Document convert(Document aDocument) { return new DOMReader().read(aDocument); } }