4. Einfache Programmierbeispiele mit JDOM
1. JDOM-Programmierbeispiel:
XML einlesen und schön formatiert ausgebenIm gleichen Verzeichnis, wo sich die oben gezeigteBeispiel-XML-Datei 'MyXmlFile.xml'befindet, speichern Sie den folgenden Java-Sourcecode unterdem Namen 'ExampleJdomWrite.java' und kompilierenund führen ihn im Kommandozeilenfenster aus mit:
javac -classpath .;jdom.jar
ExampleJdomWrite.java
java -classpath .;jdom.jar ExampleJdomWrite
MyXmlFile.xml
|
Falls Sie 'jdom.jar' bereits im globalen 'CLASSPATH'
eingetragen haben, können Sie den Teil '-classpath
.;jdom.jar' in beiden Kommandos weglassen. Die gezeigte
Schreibweise der Kommandos benötigt keinen vorher speziell
gesetzten 'CLASSPATH', aber setzt voraus, dass die
Datei 'jdom.jar' im gleichen Verzeichnis wie das
Java-Programm gespeichert ist. Falls 'jdom.jar'
woanders gespeichert ist, müssen Sie den Pfad voranstellen.
Dokumentation zu den JDOM-Klassen und Methoden finden Sie
unter: http://www.jdom.org/docs/apidocs.
Anders als im oben gezeigtem DOM-Programmierbeispiel 'ExampleDomAddWrite.java'
erfolgt hier die Ausgabe in schön formatierter Form.
Beachtenswert ist, dass zum Lesen ein SAX-Parser
eingesetzt wird, damit kein zweiter DOM-Baum aufgebaut wird,
der nur Speicherplatz verbrauchen würde. Trotzdem erfolgt
die weitere Bearbeitung der XML-Daten über die
JDOM-Baumstruktur.
// ExampleJdomWrite.java
import java.io.*;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
public class ExampleJdomWrite
{
public static void main( String[] args )
{
if( args.length != 1 )
{
System.err.println( "Usage: java ExampleJdomWrite MyXmlFile.xml" );
System.exit( 1 );
}
try {
// ---- Read XML file ----
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build( new File( args[0] ) );
// ---- Modify XML data ----
// ... do anything with XML data
// ---- Write XML file ----
XMLOutputter fmt = new XMLOutputter();
fmt.setIndent( " " ); // only for nicer formatting
fmt.setNewlines( true ); // only for nicer formatting
fmt.output( doc, System.out );
} catch( Exception ex ) {
ex.printStackTrace();
}
}
}
|
|