/***** 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 + "" + 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(" " + 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 = (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!