JDOM Util : JDOM « XML « Java






JDOM Util

 
/*
 * This file is made available under the terms of the LGPL licence.
 * This licence can be retrieved from http://www.gnu.org/copyleft/lesser.html.
 * The source remains the property of the YAWL Foundation.  The YAWL Foundation is a
 * collaboration of individuals and organisations who are committed to improving
 * workflow technology.
 */


import org.jdom.*;
import org.jdom.input.SAXBuilder;
import org.jdom.output.*;

import org.apache.log4j.Logger;

import java.io.*;


/**
 * Some static utility methods for coverting JDOM Documents and Elements
 * to Strings and files & vice versa.
 *
 *  @author Michael Adams
 *  04/07/2006
 *
 *  Last date: 22/06/08
 */

 public class JDOMUtil {

    private static Logger _log = Logger.getLogger("org.yawlfoundation.yawl.util.JDOMUtil");

    /****************************************************************************/

    public static String documentToString(Document doc) {
        if (doc == null) return null;
        XMLOutputter out = new XMLOutputter(Format.getPrettyFormat());
        return out.outputString(doc);
    }

    /****************************************************************************/

    public static String elementToString(Element e) {
        if (e == null) return null ;
        XMLOutputter out = new XMLOutputter(Format.getPrettyFormat());
        return out.outputString(e);
    }

    /****************************************************************************/

    public static String elementToStringDump(Element e) {
        if (e == null) return null ;
        XMLOutputter out = new XMLOutputter(Format.getCompactFormat());
        return out.outputString(e);
    }

    /****************************************************************************/

    public static Document stringToDocument(String s) {
        try {
           if (s == null) return null ;
           return new SAXBuilder().build(new StringReader(s));
        }
        catch (JDOMException jde) {
            _log.error("JDOMException converting to Document, String = " + s , jde);
            return null ;
        }
        catch (IOException ioe) {
            _log.error("IOException converting to Document, String = " + s, ioe);
            return null ;
        }
    }

    /****************************************************************************/

    public static Element stringToElement(String s) {
        if (s == null) return null ;
        Document doc = stringToDocument(s);
        return doc.getRootElement();
    }

    /****************************************************************************/

    public static Document fileToDocument(String path) {
       try {
           if (path == null) return null ;
           return new SAXBuilder().build(new File(path));
       }
       catch (JDOMException jde) {
           _log.error("JDOMException loading file into Document, filepath = " + path , jde);
           return null ;
       }
       catch (IOException ioe) {
           _log.error("IOException loading file into Document, filepath = " + path, ioe);
           return null ;
       }
    }

    /****************************************************************************/

         /** saves a JDOM Document to a file */
     public static void documentToFile(Document doc, String path)   {
        try {
           FileOutputStream fos = new FileOutputStream(path);
           XMLOutputter xop = new XMLOutputter(Format.getPrettyFormat());
           xop.output(doc, fos);
           fos.flush();
           fos.close();
      }
      catch (IOException ioe){
          _log.error("IO Exeception in saving Document to file, filepath = " + path, ioe) ;
      }
   }

    /****************************************************************************/

    public static String getDefaultValueForType(String dataType) {
        if (dataType == null) return "null";
        else if (dataType.equalsIgnoreCase("boolean")) return "false" ;
        else if (dataType.equalsIgnoreCase("string")) return "" ;
        else return "0";
    }

    /****************************************************************************/

    public static String encodeEscapes(String s) {
        if (s == null) return s;
        return s.replaceAll("&", "&")
                .replaceAll("<", "&lt;")                
                .replaceAll(">", "&gt;")
                .replaceAll("\"", "&quot;")
                .replaceAll("'", "&apos;") ;
    }

    public static String decodeEscapes(String s) {
        if (s == null) return s;
        return s.replaceAll("&amp;", "&")
                .replaceAll("&lt;","<")               
                .replaceAll("&gt;", ">")
                .replaceAll("&quot;","\"")
                .replaceAll("&apos;", "'") ;
    }

    /****************************************************************************/

    public static String formatXMLString(String s) {
        if (s == null) return null;
        if (s.startsWith("<?xml"))
            return documentToString(stringToDocument(s));
        else
            return elementToString(stringToElement(s));
    }

    public static String formatXMLStringAsDocument(String s) {
        return documentToString(stringToDocument(s));
    }

    public static String formatXMLStringAsElement(String s) {
        return elementToString(stringToElement(s));
    }



} //ends

   
  








Related examples in the same category

1.Simple demo of JDOM
2.Read an XML document using JDOM
3.Use JDOM to build a document
4.Make up and write an XML document, using JDOMMake up and write an XML document, using JDOM
5.List an XML file after building it into a JDOM DocumentList an XML file after building it into a JDOM Document
6.Simple example of using JDOM
7.Use Unchecked JDOM Factory
8.Use XPath in servlet
9.JDom: Locating a speech with the findCharactersFirstSpeech() method
10.Use JDOM to change the element text
11.JDOM: transform
12.Parsing with JDOM
13.Accessing Attributes Using JDOM
14.Creating a Document Using JDOM
15.Adding an Element Using JDOM
16.Adding an Attribute Using JDOM
17.Outputting a Document Using XMLOutputter
18.Use SAXBuilder from JDOM
19.Create document from jdom
20.Add elements to root element
21.Get child from root
22.XPath with JDOM
23.NamespaceTest with JDOM
24.extends org.jdom.Element
25.Iterate through elements
26.General XML Utility Functions For JDOM