Meldung

28.08.2007 - XML-Dateien mit JavaScript/DOM verarbeiten

Die in JavaScript vorhandenen Möglichkeiten zum Umgang mit Daten, die als XML-Dokument gespeichert sind versetzen den Web-Entwickler in die Lage schnell und unkompliziert auf XML-Daten zuzugreifen. In Zeiten des Web 2.0 und den damit verbundenen Web-Services greifen Programmierer von Internetseiten immer häufiger auf das XML-Format zurück, wenn es um die asynchrone Übertragung von Nutzdaten geht. Moderne Internetseiten, welche auf Web-Services zurückgreifen um Daten nachzuladen, erfreuen sich wachsender Beliebtheit. Diese Internetseiten setzen einen Technologiemix aus Ajax und JavaScript/DOM ein.

Mit Ajax können zur Darstellung im HTML-Dokument benötigte Informationen über einen Web-Service bei Bedarf nachgeladen werden. Das für den Ajax-Request nötige XMLHttpRequest-Objekt wird dabei entweder über eine ActiveX-Komponente oder direkt vom Window-Objekt geholt. Die durch den Ajax-Aufruf gelieferten Daten werden vom Web-Service oft im XML-Format geliefert. Über die Struktur des Document Object Model (DOM) werden die empfangenen Daten in das bereits in Darstellung befindliche HTLM-Dokument eingearbeitet.

Bezeichnend für das DOM ist auch die Standardisierung des in JavaScript eingesetzten Event-Handlings, mit dem auf Benutzerereignisse reagiert werden kann. Auch das Layout (die Formatierung) des im Browser dargestellten HTML-Dokuments kann über das Style-Objekt, welches Zugang auf die CSS-Eigenschaften bietet, angepasst werden.

Auf die XML-Daten kann mit der DOM-eigenen API komfortabel auf das XML-Dokument zugegriffen werden, da das DOM über Klassen (wie die Klasse Node) verfügt, die eine Reihe von Methoden mitbringen, mit deren Hilfe der Zugriff auf die XML-Struktur sehr leicht fällt. Zu nennen sind hier insbesondere die Methoden getElementById(), getElementyByTagName() und getAttribute(). Erstere ist nicht nur im Node-Objekt, sondern auch im Document-Objekt definiert.

Anhand eines Beispiels werden die Methoden zum Ermitteln von XML-Elementen und XML-Attributen in einer Funktion zur Ausgabe der empfangenen XML-Daten demonstriert. Eine Liste der in der verwendeten XML-Datei enthaltenen Datensätze wird durch die Methode getElementsByTagName() ermittelt. Diese Methode liefert Arrays von gefundenen XML- bzw. HTML-Elementobjekten.

Mit der For-Schleife – für die es auch eine Beispielseite gibt – werden die durch getElementsByTagName ermittelten XML-Elemente durchgegangen und ausgegeben. Neben der For-Schleife wird auch die Nutzung der For-in-Schleife anhand eines Beispiels erklärt. Zur Ausgabe der in der XML-Datei enthaltenen Datensätze werden auch Methoden zum Erzeugen und Kopieren von HTML-Elementen und Textknoten (createElement, cloneNode und createTextNode), sowie Methoden zum Einh&aum;gen von Elementen in den HTML-Elementenbaum (appendChild) verwendet.


Alexander Müller