JSP - Workshop - XML mit JDOM - Step 1/4

Zur Verarbeitung von XML findet sich in JDOM
ein sehr nützliches und praktisches Werkzeug. Deswegen wollen wir hier einen groben Überblick
über die funktionsweise und Verwednung der api geben. JDOM befindet sich noch in der Beta-Phase, aber
das Release 1.0 ist in naher Zukunft. Parallel zum Workshop sollte man sich auch die
Dokumentation anschauen.
Im ersten Schritt starten wir mit der Erzeugung einer XML-Datei und schreiben diese in das Filesystem.
Schritt 2 zeigt wie man eine XML-Datei einliest und manipuliert, im Schritt 3 verwenden wir eine Suche
über das XML mittels XPATH und letztendlich transformieren wir das XML mit XSLT in Schritt 4.
Wir starten mit dem Erzeugen einer XML-Datei:
// Erzeugung eines XML-Dokuments
Document doc = new Document();
// Erzeugung des Root-XML-Elements mit dem Namen books
Element elRoot = new Element("books");
// Erzeugung eines XML-Elements mit dem Namen book
Element elBook = new Element("book");
// Dem Element book geben wir noch ein Attribut mit dem Namen id und dem Wert 1
elBook.setAttribute("id", "1");
// Und noch ein XML-Element mit dem Namen title
Element elTitle = new Element("title");
// dem wir einen Inhalt geben
elTitle.addContent(new Text("Java 2 Enterprise Edition"));
// und hiermit an unser Element book haengen
elBook.addContent(elTitle);
// Was waere ein Buch ohne Autor, also erzeugen wir noch ein Autor-Element
// und haengen die an unser Buch in verkuerzter Form
elBook.addContent((Element)new Element("author").addContent(new Text("Mark Wuttka")));
// Jetzt muessen wir noch an unser Root-Element books haengen
elRoot.addContent(elBook);
// Damit das eine Buch nicht so alleine ist haengen wir noch ein zweites dran
elBook = new Element("book");
elBook.setAttribute("id", "2");
elBook.addContent((Element)new Element("title").addContent(new Text("JavaServer Pages and Servlets")));
elBook.addContent((Element)new Element("author").addContent(new Text("Mark Wuttka")));
elRoot.addContent(elBook);
// Und jetzt haengen wir noch das Root-Element an das Dokument,
// haette man auch gleich nach dessen Erzeugung machen koennen
doc.setRootElement(elRoot);
// Damit das XML-Dokument schoen formattiert wird holen wir uns ein Format
Format format = Format.getPrettyFormat();
// und setzen das encoding, da in unseren Buechern auch Umlaute vorkommen koennten.
// Mit format kann man z.B. auch die Einrueckung beeinflussen
format.setEncoding("iso-8859-1");
// Erzeugung eines XMLOutputters dem wir gleich unser Format mitgeben
XMLOutputter xmlOut = new XMLOutputter(format);
// Schreiben der XML-Datei ins Filesystem
xmlOut.output(doc, new FileOutputStream(getServletContext().getRealPath("/path/to/test.xml")));
Die erzeugte XML-Datei sieht dann so aus:
<?xml version="1.0" encoding="iso-8859-1"?>
<books>
<book id="1">
<title>Java 2 Enterprise Edition</title>
<author>Mark Wuttka</author>
</book>
<book id="2">
<title>JavaServer Pages and Servlets</title>
<author>Mark Wuttka</author>
</book>
</books>
weiter zum Step 2
|