Saturday 30 July 2011

A simple example to show how to use the DOM API

 
import java.io.*;

import org.w3c.dom.Document;
import org.w3c.dom.DocumentType;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import org.apache.xerces.parsers.DOMParser;

public class MainClass {
  public void processNode(Node node, String spacerthrows IOException {
    if (node == null)
      return;
    switch (node.getNodeType()) {
    case Node.ELEMENT_NODE:
      String name = node.getNodeName();
      System.out.print(spacer + "<" + name);
      NamedNodeMap nnm = node.getAttributes();
      for (int i = 0; i < nnm.getLength(); i++) {
        Node current = nnm.item(i);
        System.out.print(" " + current.getNodeName() "= " + current.getNodeValue());
      }
      System.out.print(">");
      NodeList nl = node.getChildNodes();
      if (nl != null) {
        for (int i = 0; i < nl.getLength(); i++) {
          processNode(nl.item(i)"");
        }
      }
      System.out.println(spacer + "</" + name + ">");
      break;
    case Node.TEXT_NODE:
      System.out.print(node.getNodeValue());
      break;
    case Node.CDATA_SECTION_NODE:
      System.out.print("" + node.getNodeValue() "");
      break;
    case Node.ENTITY_REFERENCE_NODE:
      System.out.print("&" + node.getNodeName() ";");
      break;
    case Node.ENTITY_NODE:
      System.out.print("<ENTITY: " + node.getNodeName() "> </" + node.getNodeName() "/>");
      break;
    case Node.DOCUMENT_NODE:
      NodeList nodes = node.getChildNodes();
      if (nodes != null) {
        for (int i = 0; i < nodes.getLength(); i++) {
          processNode(nodes.item(i)"");
        }
      }
      break;
    case Node.DOCUMENT_TYPE_NODE:
      DocumentType docType = (DocumentTypenode;
      System.out.print("<!DOCTYPE " + docType.getName());
      if (docType.getPublicId() != null) {
        System.out.print(" PUBLIC " + docType.getPublicId() " ");
      else {
        System.out.print(" SYSTEM ");
      }
      System.out.println(" " + docType.getSystemId() ">");
      break;
    default:
      break;
    }
  }

  public static void main(String[] args) {
    String uri = "test.xml";
    try {
      bookDescDOM bd = new bookDescDOM();
      System.out.println("Parsing XML File: " + uri + "\n\n");
      DOMParser parser = new DOMParser();
      parser.setFeature("http://xml.org/sax/features/validation"true);
      parser.setFeature("http://xml.org/sax/features/namespaces"false);
      parser.parse(uri);
      Document doc = parser.getDocument();
      bd.processNode(doc, "");
    catch (Exception e) {
      e.printStackTrace();
      System.out.println("Error: " + e.getMessage());
    }
  }
}

 

No comments:

Post a Comment