WEB开发网
开发学院WEB开发Jsp JDOM与XML的案例 阅读

JDOM与XML的案例

 2008-01-05 08:58:46 来源:WEB开发网   
核心提示: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.j
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>


*/

Tags:JDOM XML 案例

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接