XML und Programmierschnittstellen

Lernziel

Hier soll Ihnen kurz vorgestellt werden, welche Moeglichkeiten es gibt, mit Programmiersprachen auf XML zuzugreifen.

Handlungsanweisungen

Aufgaben
  1. Informieren Sie sich kurz über die Möglichkeiten, XML mit Programmierschnittstellen zu bearbeiten.

Zugriff auf XML durch Programmiersprachen

Fast jede moderne Programmiersprache hat Schnittstellen zu XML. Hier seien einige Sprachen mit sehr guter Unterstützung genannt: Java, Perl, PHP, Python, JavaScript.

Es gibt unterschiedliche Schnittstellen und Methoden, um auf XML-Datein zuzugreifen, diese sollen nun kurz vorgestellt werden.

Document Object Modell (DOM)

Mit dem DOM greift man hierachisch auf einen XML-Datei zu, wie die folgende Grafik verdeutlichen soll:

../../_images/dom.png

„person“ ist das root-Element, mit den Kindelemente alter, wohnort und beruf. Klar zu erkennen ist die hierachische Anordnung.

Hier ein Beispiel in Perl:

::

#!/usr/bin/perl use XML::DOM;

#neues Instanz erstellen my $parser = new XML::DOM::Parser;

#zu parsenden File angeben (das XML-Dokument oben) my $doc = $parser->parsefile(‘test.xml’);

#Elementname angeben (person), zurück bekommen wir eine Liste der #Knoten (in diesem Fall ein Knoten zu den Attributen).

my $nodes = $doc->getElementsByTagName(“person”);

#jetzt wählen wir den 0. Knoten (Zählung beginnt mit 0) aus my $node = $nodes->item(0);

#und greifen auf die beiden Attribute zu, mit getNodeValue bekommen wir #den entsprechenden Wert. Die Struktur ist folgende: #Attributknoten -> Attribut -> Attributwert

print $node->getAttributes->item(0)->getNodeValue; print $node->getAttributes->item(1)->getNodeValue;

Beispiele für die Programmiersprache Python

Programmiersprachen und XML?

Die Anwendungsbereiche sind vielfältig, hier eine Übersicht:

  • Ein- und Auslesen von XML-Dateien sowie deren Transformation in andere Formate

  • Erstellen von XML-Dateien (z.B. auf Formularen und Usereingaben)

  • Automatisieren von Transformationen (HTML,PDF,PostScript usw.)

  • Erstellen von SVG-Grafiken on-the-fly

  • Transformation von XML-Dokumenten in relationale Datenbanken und umgekehrt