XML: Python#
Lernziel#
Sie kennen schon den Aufbau von XML-Dateien und auch die Technik, mittels XSL, Daten zu extrahieren und in neue Strukturen zu überführen.
Leider lassen sich nicht alle Probleme mit XSL lösen, so liegt es nahe eine Programmiersprache zur Hilfe zu nehmen. Python bietet hier eine ganze Reihe von Möglichkeiten, von denen einige vorgestellt werden. Für den Einstieg benutzen wir die in jeder Python-Installation vorhandenen SAX und DOM-Module.
Handlungsanweisungen#
- Aufgaben:
Suchen Sie in Ihrer lokalen Dokumentation die Einstiegsseiten zum SAX und DOM-Parser. Erstellen Sie für Ihren Browser einen Lesezeicheneintrag zu diesen Seiten.
SAX#
SAX definiert ein ereignisgesteuertes (event-driven) Interface zum Parsen von XML-Daten. Für die Benutzung von SAX muß eine Python-Klasse erstellt werden, welche ein spezielles Interface implementiert. Dieses Interface stellt dann Methoden zum Zugriff auf die Objekte in der XML-Datei zur Verfügung.
DOM#
- Das Document Object Model (DOM) definiert eine Baumstruktur (tree-based representation)
für ein XML-Dokument.
Übersicht verfügbarer XML-Tools#
Folgende Liste zeigt eine Auswahl verfügbarer XML-Tools, fall die eingebauten XML-Module von Python nicht ausreichen sollten.
Name |
Anwendungsgebiet |
Autor |
---|---|---|
ElementTree |
XML middleware |
Fredrik Lundh |
GNOWSYS |
Topic map engines |
GNOWSYS |
GPS |
XML middleware |
Geir Ove Grønmo |
LT PyXML |
XML middleware |
Edinburgh Language Technology Group |
PyTREX |
XML validators |
James Tauber |
Pyana |
XSLT engines |
Brian Quinlan |
Python XML package |
XML middleware |
The Python XML-SIG |
Pyxie |
XML middleware |
Sean McGrath |
Redfoot |
RDF parsers XML document DBS, |
The Redfoot Team |
Sablotron |
XSLT engines |
Ginger Alliance |
Schematron |
XML validators |
Rick Jelliffe |
SemanText |
Topic map engines |
Eric Freese |
Skyron |
Data binding engines |
John Wilson |
TmTk |
Topic map engines |
Jan Algermissen |
XML Schema Validator |
XML validators |
Henry Thompson, Richard Tobin |
dtddoc |
DTD documenters |
Lars Marius Garshol |
lxml |
XML parsers |
|
maki |
Web publishing |
Sam Brauer |
pysp |
SGML/XML parsers |
Lars Marius Garshol |
tmproc |
Topic map engines |
Geir Ove Grønmo |
xmlarch |
Architectural forms engines |
Geir Ove Grønmo |
xmldiff |
XML document management utilities |
Alexandre Fayolle |
xmlproc |
XML parsers, DTD parsers |
Lars Marius Garshol |
xmltools |
XML editors |
Alexandre Fayolle |