Package XmlUtils

Source Code of XmlUtils.XmlUtil

package XmlUtils;

import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMResult;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;


public class XmlUtil {
   
    public static Node sourceToDomNode(Source source) throws TransformerConfigurationException, TransformerException{
       
        TransformerFactory factory = TransformerFactory.newInstance();
        Transformer transformer = factory.newTransformer();

        DOMResult result = new DOMResult();
        transformer.transform(source, result);
       
        Node root = result.getNode();

        if( root == null ) return null;
       
        root.normalize();

        return root;
    }
   
   
    public static String domNodeToString(Node node) throws TransformerConfigurationException, TransformerException{
       
        TransformerFactory factory = TransformerFactory.newInstance();
        Transformer transformer = factory.newTransformer();
       
        StringWriter sw = new StringWriter();
        StreamResult stream = new StreamResult(sw);

        DOMSource domSource = new DOMSource(node);

        transformer.transform(domSource, stream);
       
        String result = sw.toString();
       
        return result.replaceAll("/>.+<", "/><");

    }
   
    public static Document createDomDocument(String xml) {
       
        try {
           
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            InputSource input = new InputSource(new StringReader(xml));
            Document doc = factory.newDocumentBuilder().parse(xml);
            doc.normalizeDocument();
            return doc;
           
        } catch (ParserConfigurationException ex) {
            System.out.println(ex.getMessage());
        } catch (SAXException ex) {
            System.out.println(ex.getMessage());
        } catch (IOException ex) {
            System.out.println(ex.getMessage());
        }
       
        return null;
    }
   
   
    public static Document getDocFromSource(Source source) throws TransformerConfigurationException,
                            TransformerException, ParserConfigurationException, SAXException, IOException{
       
        StringWriter writer = null;
        StringReader reader = null;
       
        try{
            writer = new StringWriter();
            Result streamresult = new StreamResult(writer);

            TransformerFactory.newInstance().newTransformer().transform(source, streamresult);

            org.xml.sax.InputSource inStream = new org.xml.sax.InputSource();
            reader = new java.io.StringReader(writer.toString());
            inStream.setCharacterStream(reader);

            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document doc = db.parse(inStream);

            return doc;
        }
        finally{
            if( writer != null ) writer.close();
            if( reader != null ) reader.close();
        }
       
    }
   
}
TOP

Related Classes of XmlUtils.XmlUtil

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.