Java xerces: Exemple d’utilisation de DOM pour analyser un document XML

Author:

Java xerces: Exemple d'utilisation de DOM pour analyser un document XML
{filelink=8706}

/***** Code de MesExemples.com *******/
 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 spacer) throws 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 + "");      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(" ");      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 = (DocumentType) node;      System.out.print("");      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 + " 
    ");      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());    }  }} 

Code testé avec le fichier XML Suivant




	Sakoba
	Adams
	Rappel
	Ne m'oubliez pas ce week-end!

Leave a Reply

Your email address will not be published. Required fields are marked *