Il seguente è un esempio davvero semplice ma significativo con JDOM:
libri.xml
codice:
<?xml version="1.0" encoding="ISO-8859-1"?>
<libri>
<libro>
<titolo>The Java Programming Language, 4th Edition</titolo>
<autori>
<autore><nome>Ken</nome><cognome>Arnold</cognome></autore>
<autore><nome>James</nome><cognome>Gosling</cognome></autore>
<autore><nome>David</nome><cognome>Holmes</cognome></autore>
</autori>
</libro>
<libro>
<titolo>Java and XML, 3rd Edition</titolo>
<autori>
<autore><nome>Brett</nome><cognome>McLaughlin</cognome></autore>
<autore><nome>Justin</nome><cognome>Edelson</cognome></autore>
</autori>
</libro>
</libri>
LetturaLibri.java
codice:
import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.input.*;
public class LetturaLibri {
public static void main(String[] args) {
try {
SAXBuilder builder = new SAXBuilder();
Document document = builder.build(new File("libri.xml"));
Element elemRootLibri = document.getRootElement();
List listLibro = elemRootLibri.getChildren("libro");
Iterator iterLibro = listLibro.iterator();
while (iterLibro.hasNext()) {
Element elemLibro = (Element) iterLibro.next();
System.out.println("--- LIBRO ---");
Element elemTitolo = elemLibro.getChild("titolo");
System.out.println("Titolo: " + elemTitolo.getText());
Element elemAutori = elemLibro.getChild("autori");
List listAutore = elemAutori.getChildren("autore");
Iterator iterAutore = listAutore.iterator();
while (iterAutore.hasNext()) {
Element elemAutore = (Element) iterAutore.next();
Element elemNome = elemAutore.getChild("nome");
Element elemCognome = elemAutore.getChild("cognome");
System.out.println("Autore: " + elemNome.getText() + " " + elemCognome.getText());
}
}
} catch (Exception e) {
System.err.println(e);
}
}
}
Come si può vedere la logica di elaborazione del documento, ovvero l'innestamento delle ricerche di elementi specifici e liste di elementi segue, praticamente pari-pari, la struttura del documento.