XML-DOM -Knoten
Laut XML DOM ist alles in einem XML-Dokument ein Knoten :
- Das gesamte Dokument ist ein Dokumentknoten
- Jedes XML-Element ist ein Elementknoten
- Der Text in den XML-Elementen sind Textknoten
- Jedes Attribut ist ein Attributknoten
- Kommentare sind Kommentarknoten
DOM-Beispiel
Sehen Sie sich die folgende XML-Datei an ( books.xml ):
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="web" cover="paperback">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
Der Stammknoten im obigen XML heißt <bookstore>.
Alle anderen Knoten im Dokument sind in <bookstore> enthalten.
Der Wurzelknoten <bookstore> enthält 4 <book>-Knoten.
Der erste <Buch>-Knoten enthält die untergeordneten Knoten: <Titel>, <Autor>, <Jahr> und <Preis>.
Die untergeordneten Knoten enthalten jeweils einen Textknoten, "Alltagsitalienisch", "Giada De Laurentiis", "2005" und "30.00".
Text wird immer in Textknoten gespeichert
Ein häufiger Fehler bei der DOM-Verarbeitung besteht darin, zu erwarten, dass ein Elementknoten Text enthält.
Der Text eines Elementknotens wird jedoch in einem Textknoten gespeichert.
In diesem Beispiel: <Jahr>2005</Jahr> enthält der Elementknoten <Jahr> einen Textknoten mit dem Wert „2005“.
"2005" ist nicht der Wert des <year>-Elements!
Der XML-DOM-Knotenbaum
Das XML-DOM betrachtet ein XML-Dokument als Baumstruktur. Die Baumstruktur wird Knotenbaum genannt.
Auf alle Knoten kann über den Baum zugegriffen werden. Ihr Inhalt kann geändert oder gelöscht werden, und neue Elemente können erstellt werden.
Der Knotenbaum zeigt den Satz von Knoten und die Verbindungen zwischen ihnen. Der Baum beginnt am Wurzelknoten und verzweigt sich zu den Textknoten auf der untersten Ebene des Baums:
Das obige Bild stellt die XML-Datei books.xml dar .
Knoten Eltern, Kinder und Geschwister
Die Knoten im Knotenbaum haben eine hierarchische Beziehung zueinander.
Die Begriffe Elternteil, Kind und Geschwister werden verwendet, um die Beziehungen zu beschreiben. Elternknoten haben Kinder. Kinder auf gleicher Stufe werden Geschwister (Brüder oder Schwestern) genannt.
- In einem Knotenbaum wird der oberste Knoten Wurzel genannt
- Jeder Knoten außer dem Wurzelknoten hat genau einen Elternknoten
- Ein Knoten kann beliebig viele Kinder haben
- Ein Blatt ist ein Knoten ohne Kinder
- Geschwister sind Knoten mit demselben Elternteil
Das folgende Bild zeigt einen Teil des Knotenbaums und die Beziehung zwischen den Knoten:
Da die XML-Daten in Baumform strukturiert sind, können sie durchlaufen werden, ohne die genaue Struktur des Baums zu kennen und ohne die Art der darin enthaltenen Daten zu kennen.
In einem späteren Kapitel dieses Tutorials erfahren Sie mehr über das Durchlaufen des Knotenbaums.
Erstes Kind – letztes Kind
Sehen Sie sich das folgende XML-Fragment an:
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
</bookstore>
Im obigen XML ist das <title>-Element das erste untergeordnete Element des <book>-Elements und das <price>-Element das letzte untergeordnete Element des <book>-Elements.
Außerdem ist das <book>-Element der Elternknoten der <title>-, <author>-, <year>- und <price>-Elemente.