Simple demo of JDOM : JDOM « XML « Java






Simple demo of JDOM

  

/*
 * Copyright (c) Ian F. Darwin, http://www.darwinsys.com/, 1996-2002.
 * All rights reserved. Software written by Ian F. Darwin and others.
 * $Id: LICENSE,v 1.8 2004/02/09 03:33:38 ian Exp $
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS''
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 * 
 * Java, the Duke mascot, and all variants of Sun's Java "steaming coffee
 * cup" logo are trademarks of Sun Microsystems. Sun's, and James Gosling's,
 * pioneering role in inventing and promulgating (and standardizing) the Java 
 * language and environment is gratefully acknowledged.
 * 
 * The pioneering role of Dennis Ritchie and Bjarne Stroustrup, of AT&T, for
 * inventing predecessor languages C and C++ is also gratefully acknowledged.
 */

import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import org.jdom.Comment;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.ProcessingInstruction;
import org.jdom.input.DOMBuilder;
import org.jdom.input.SAXBuilder;
import org.jdom.output.DOMOutputter;

/*
 * Simple demo of JDOM
 */
public class JDOMDemo {

    public static void main(String[] args) {
  
    // Must be at least one file or URL argument
        if (args.length == 0) {
            System.out.println("Usage: java JDOMDemo URL [...]"); 
        } 
        
        SAXBuilder saxBuilder = new SAXBuilder();
        DOMBuilder domBuilder = new DOMBuilder();
                
        for (int i = 0; i < args.length; i++) {
      
            try {
                Document jdomDocument = saxBuilder.build(args[i]);

                DOMOutputter domOutputter = new DOMOutputter();

                /*
                 * Test getting DOM Document from JDOM Document
                org.w3c.dom.Document domDocument = domOutputter.output(doc);
                 */

                /*
                 * Test getting DOM Element from JDOM Element
                 */
                org.w3c.dom.Element domElement = 
                  domOutputter.output(jdomDocument.getRootElement());

                /*
                 * Test getting JDOM Element from DOM Element
                 */
                org.jdom.Element jdomElement = domBuilder.build(domElement);
                demo(jdomElement);

            } catch (JDOMException e) { // indicates a well-formedness or other error
                System.out.println(args[i] + " is not a well formed XML document.");
                System.out.println(e.getMessage());
            } catch (IOException ex) {
        System.out.println("Input or Output error:" + 
          args[i] + ": " + ex);
      }     
        }
    }

    public static void demo(Document doc) {

        List children = doc.getContent();
        Iterator iterator = children.iterator();
        while (iterator.hasNext()) {
            Object o = iterator.next();
            if (o instanceof Element) {
                demo((Element) o);
            }
            else if (o instanceof Comment)
        doComment((Comment) o);
            else if (o instanceof ProcessingInstruction) 
        doPI((ProcessingInstruction) o);
        }
    }     

    public static void demo(Element element) {
    System.out.println("Element " + element);

        List attributes = element.getAttributes();
        List children = element.getContent();
        Iterator iterator = children.iterator();
        while (iterator.hasNext()) {
            Object o = iterator.next();
            if (o instanceof Element) {
                demo((Element) o);
            }
            else if (o instanceof Comment) 
        doComment((Comment)o);
            else if (o instanceof ProcessingInstruction) 
        doPI((ProcessingInstruction)o);
            else if (o instanceof String) {
                System.out.println("String: " + o);
            }   
        }
    }  

  public static void doComment(Comment c) {
    System.out.println("Comment: " + c);
  }

  public static void doPI(ProcessingInstruction pi) {
    System.out.println("PI: " + pi);
  }
}
// demo xml file
/*
<?xml version="1.0"?>
<people>
<person>
  <name>Ian Darwin</name>
  <email>http://www.darwinsys.com/</email>
  <country>Canada</country>
</person>
<person>
  <name>Another Darwin</name>
  <email type="intranet">afd@node1</email>
  <country>Canada</country>
</person>
</people>


*/


           
         
    
  








Related examples in the same category

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