XML DOM Knoten

According to XML DOM, all content in an XML document isNode

  • The entire document is a document node
  • Each XML element is an element node
  • The text in an XML element is a text node
  • Each attribute is an attribute node
  • Comments belong to comment nodes

DOM Example

Please see the following XML file (books.xml):

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="美食">
  <title lang="zh">雅舍谈吃</title>
  <author>梁实秋</author>
  <press>江苏文艺出版社</press>
  <year>2013</year>
  <price>35</price>
  <ISBN>9787539962771</ISBN>
</book>
<book category="children">
  <title lang="zh">Der großartige Fuchs-Vater</title>
  <author>Rolf Dahl</author>
  <translator>Da Wei</translator>
  <press>Tianming Chubanshe</press>
  <year>2009</year>
  <price>10</price>
  <ISBN>9787533259563</ISBN>
</book>
<book category="Literatur">
  <title lang="zh">Fremd machen, was bekannt ist</title>
  <author>Sigmond Baumann</author>
  <author>Peter Haffner</author>
  <translator>Wang Liquiu</translator>
  <press>Nanjing Daxue Chubanshe</press>
  <year>2023</year>
  <price>68</price>
  <ISBN>9787305269387</ISBN>
</book>
<book category="Wissenschaft">
  <title lang="zh">Willst du fliegen, wie ein Vogel?</title>
  <author>Richard Dawkins</author>
  <author>Yana Renzova</author>
  <translator>Gaotianyu</translator>
  <press>Hunan Kexue Jishu Chubanshe</press>
  <year>2023</year>
  <price>88</price>
  <ISBN>9787571019075</ISBN>
</book>
<book category="Politik" cover="Brochur">
  <title lang="zh">Über die Demokratie in Amerika</title>
  <author>de Tocqueville</author>
  <translator>Doong Guoliang</translator>
  <press>Wusong Yinshe</press>
  <year>1989</year>
  <price>60</price>
  <ISBN>9787100124553</ISBN>
</book>
</bookstore>

Im obigen XML ist der Wurzelknoten <bookstore>.

Alle anderen Knoten im Dokument sind im <bookstore> enthalten.

Der Wurzelknoten <bookstore> verfügt über 5 <book>-Knoten.

Der erste <book>-Knoten enthält 6 Unter-Knoten: <title>, <author>, <press>, <year>, <price> und <ISBN>.

Jeder Unter-Nodes enthält einen Textknoten:

  • "雅舍谈吃"
  • "梁实秋"
  • "江苏文艺出版社"
  • "2012"
  • "48.00"
  • "9787100011105"

Text wird immer in Textknoten gespeichert

Ein häufiger Fehler im DOM-Verarbeitung ist, dass angenommen wird, dass Elementknoten Text enthalten.

Allerdings wird der Text der Elementknoten in Textknoten gespeichert.

In diesem Beispiel:<year>2013</year>,Elementknoten <year> enthält einen Textknoten mit dem Wert "2012".

"2012" Nein <year>-Elementwert!

XML DOM Knotenbaum

Der XML DOM betrachtet das XML-Dokument als eine Baumstruktur. Diese Baumstruktur wird alsKnotenbaum.

Durch diesen Baum können alle Knoten erreicht werden. Sie können ihr Inhalt geändert oder gelöscht werden, oder neue Elemente können erstellt werden.

Dieses Knotenbaum zeigt die Sammlung von Knoten und ihre Beziehungen. Das Baum beginnt am Wurzelknoten und wächst dann in die Textknoten auf der untersten Ebene des Baums:

DOM Knotenbaum

Das obige Diagramm stellt die XML-Datei dar books.xml.

Elternteil, Kind und Brüderknoten

Die Knoten im Knotenbaum haben eine Hierarchiebeziehung zueinander.

Der Begriff "Elternteil", "Kind" und "Gleiche" wird verwendet, um diese Beziehung zu beschreiben. Ein Elternteilknoten hat Kindknoten. Die Kindknoten auf der gleichen Ebene werden als gleichrangige Knoten oder gleiche Knoten (Brüder oder Schwestern) bezeichnet.

  • In einem Knotenbaum wird der oberste Knoten als Wurzel bezeichnet
  • Mit Ausnahme des Wurzelknotens hat jeder Knoten nur einen Elternteil
  • Knoten können eine beliebige Anzahl von Kindknoten haben
  • Blattknoten sind Knoten ohne Kindknoten
  • Gleiche Knoten sind Knoten mit demselben Elternteil

Das folgende Diagramm zeigt einen Teil des Knotenbaums sowie die Beziehungen zwischen den Knoten:

DOM Knotenbaum

Da XML-Daten in Form eines Baums konstruiert sind, können sie ohne Kenntnis der genauen Struktur des Baums und der darin enthaltenen Datentypen durchsucht werden.

Sie werden in den folgenden Kapiteln dieses Handbuchs mehr über das Durchsuchen des Knotenbaums lernen.

Kommentare:Elternknoten: Parent Node,Kindknoten: Children Node,Gleichen Knoten: Sibling Node。

Erster Unter-Nodes - Letzter Unter-Nodes

Bitte überprüfen Sie den folgenden XML-Abschnitt:

<bookstore>
  <book category="美食">
    <title lang="zh">雅舍谈吃</title>
    <author>梁实秋</author>
	<press>江苏文艺出版社</press>
    <year>2013</year>
    <price>35</price>
	<ISBN>9787100011105</ISBN>
  </book>
</bookstore>

In the above XML, the <title> element is the first child of the <book> element, and the <ISBN> element is the last child of the <book> element.

In the above XML, the <title> element is the first child of the <book> element, and the <ISBN> element is the last child of the <book> element.