next up previous contents index
Next: 6.3 Client Up: Änderungen und Erweiterungen Previous: Änderungen und Erweiterungen

6.2.1 Der SAX-Parser

Der SAX-Parser ist ein Javabasiertes Produkt zum Parsen von XML-Files.

Um ihn einzusetzen wären folgende Code-Fragmente nötig:

import org.xml.sax.HandlerBase;
import org.xml.sax.AttributeList;

public class MyHandler extends HandlerBase {

	public void startElement (String name, AttributeList atts)
	{
		System.out.println("Start element: " + name);
	}

    public void endElement (String name)
    {
        System.out.println("End element: " + name);
    }

}

In der Klasse MyHandler wird der DocumentHandler verwendet. er erhält Events zu den verschiedenen Ereignissen. Was mit diesen Events geschehen soll, wird in der Klasse myHandler implementiert.

Es gibt folgende Events:

characters(char[], int, int)
Erhält eine Nachricht, für jeden Buchstaben
endDocument()
Erhält eine Nachricht, wenn das zu parsende Dokument zu Ende ist.
endElement(String)
Erhält eine Nachricht, wenn ein Element-Ende gelesen wird.
ignorableWhitespace(char[], int, int)
Erhält eine Nachricht, wenn White-Spaces gelesen werden, die im Normalfall ignoriert werden können.
processingInstruction(String, String)
Erhält eine Nachricht, wenn die Ausführung einer Aktion (processing instruction) im zu parsenden Dokument gelesen wird.
setDocumentLocator(Locator)
Erhält ein Objekt, um den Ausgangspunkt eines Events im Dokument zu erhalten.
startDocument()
Erhält eine Nachricht, wenn ein neues Dokument beginnt.
startElement(String, AttributeList)
Erhält eine Nachricht, wenn ein Element-Start gelesen wird.

Um diese HandlerBase zu nutzen, müßte folgendes implementiert werden:

import org.xml.sax.Parser;
import org.xml.sax.DocumentHandler;
import org.xml.sax.helpers.ParserFactory;

public class SAXApp {

	static final String parserClass = "com.microstar.xml.SAXDriver";

    public static void main (String args[])
        throws Exception
    {
    	Parser parser = ParserFactory.makeParser(parserClass);
        DocumentHandler handler = new MyHandler();
        parser.setDocumentHandler(handler);
        for (int i = 0; i < args.length; i++) {
        	parser.parse(args[i]);
        }
     }
}



Copyright Munich Network Management Team