Knoten suchen

Auf die Knotensuche wurde bereits oberflächlich eingegangen. Da das gezielte Finden von Knoten zur weiteren Bearbeitung wichtig ist soll noch näher auf dieses Thema eingegangen werden.

Zur Suche von Knoten wurde die Methode getElementsByTagName vorgestellt. Häufig kommt ein Tag mehrmals vor, so auch im vorangegangenen Beispiel (in diesem Fall der Tag Mitarbeiter). Um herauszufinden, wieviele Elemente Sie ausgelesen haben benötigen Sie die Methode getLength:

findNode = docNode.getElementsByTagName('Mitarbeiter');

Nun sollten in der Variable findNode alle Knoten mit dem Namen Mitarbeiter enthalten sein. Sie erinnern sich an die XML-Struktur aus dem vorherigen Abschnitt? Wenn sie alles richtig gemacht haben oder die fertige .m-Datei genutzt haben sollte dieser Knoten zwei mal vorkommen. Ein Aufruf von

findNode.getLength

Sollte die Zahl 2 ausgeben. Sie können also mittels item() auf die jeweiligen Knoten zugreifen. Beachten Sie, dass hier jedoch bei 0 losgezählt wird - bei zwei Knoten benötigen Sie also item(0) und item(1).

In diesem Knoten existieren weitere Knoten (sog. "Kinder"). Diese können Sie mit der Methode getChildNodes auslesen. Der Aufruf

foundNode = findNode.item(1);
childNodes = foundNode.getChildNodes;

erzeugt eine neue Variable in der die Kinder-Knoten enthalten sind. In unserem Beispiel also die Tags Name und Titel. Sollten Sie nicht wissen, wieviele Kinder-Knoten existieren kann hier analog der Befehl getLength genutzt werden. Ebenfalls können Sie die Methode item() nutzen.

childNodes.item(0);

ruft demzufolge den Knoten Name auf, item(1) analog den Knoten Titel.