Im folgenden Beispiel sollen Elemente und - gegebenenfalls - bestimmte Kindelemente ausgegeben werden.
import javax.xml.parsers.*;
import org.w3c.dom.*;
public class XML4 {
public void parsen(String [] args) throws Exception {
DocumentBuilderFactory fabrik = DocumentBuilderFactory.newInstance();
DocumentBuilder aufbau = fabrik.newDocumentBuilder();
Document xmlbaum = aufbau.parse(args[0]);
System.out.println("=======================");
NodeList knotenListe = xmlbaum.getElementsByTagName("skriptum");
int anzahl = knotenListe.getLength();
for (int i=0; i<anzahl; i++) {
Element element = (Element) knotenListe.item(i);
String attributwert = element.getAttribute("titel");
System.out.println(attributwert);
System.out.println("-----------------------");
Element kindElement = (Element) knotenListe.item(i);
NodeList kindKnoten = kindElement.getElementsByTagName("kapitel");
int anzahl2 = kindKnoten.getLength();
for (int j=0; j<anzahl2; j++) {
String elementwert = kindKnoten.item(j).getFirstChild().getNodeValue();
System.out.println("\t" + elementwert);
}
System.out.println("=======================");
}
}
public static void main (String [] args) throws Exception {
XML4 proggi = new XML4();
proggi.parsen(args);
}
}
Beachte, wie die Methode getElementsByTagName() zweimal angewendet wird! Zunächst wird die Document - Methode auf das Dokument xmlbaum, dann die Element - Methode auf das jeweils ausgewählte Element kindElement angewendet. Wir erhalten eine einfach formatierte Ausgabe:
alfred@duron:~/java/xml> java XML4 test.xml
=======================
Java
-----------------------
Einfuehrung
XML
DTD
XSL
=======================
PHP
-----------------------
Einfuehrung
Apache
Server - Client
Grundlagen
Formulare
PDF
Grafiken
=======================