XML DOM Nodes

Volgens XML DOM, alle inhoud in een XML-document isKnoop

  • Het hele document is een document knoop
  • Elk XML-element is een element knoop
  • Tekst in een XML-element is een tekst knoop
  • Elke eigenschap is een eigenschap knoop
  • Opmerkingen zijn opmerking knopen

DOM Voorbeeld

Bekijk het volgende XML-bestand (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">De ongelooflijke vader van de vos</title>
  <author> Roald Dahl</author>
  <translator> Dai Wei</translator>
  <press>Tomorrow Publishing House</press>
  <year>2009</year>
  <price>10</price>
  <ISBN>9787533259563</ISBN>
</book>
<book category="literatuur">
  <title lang="zh">Van bekende naar onbekend</title>
  <author> Zigmund Bauman</author>
  <author> Peter Hauvner</author>
  <translator> Wang Lichou</translator>
  <press>Nanjing University Press</press>
  <year>2023</year>
  <price>68</price>
  <ISBN>9787305269387</ISBN>
</book>
<book category="science">
  <title lang="zh">Will je vliegen, zoals een vogel?</title>
  <author> Richard Dawkins</author>
  <author> Yan Renzova</author>
  <translator> Gao Tianyu</translator>
  <press>Hunan Science and Technology Press</press>
  <year>2023</year>
  <price>88</price>
  <ISBN>9787571019075</ISBN>
</book>
<book category="politic" cover="flapbook">
  <title lang="zh">Over de democratie in de Verenigde Staten</title>
  <author> Tocqueville</author>
  <translator> Dong Guoliang</translator>
  <press>Shangwu Yinshe</press>
  <year>1989</year>
  <price>60</price>
  <ISBN>9787100124553</ISBN>
</book>
</bookstore>

In het bovenstaande XML is de wortelknooppunt <bookstore>.

Alle andere knooppunten in het document worden opgenomen in <bookstore>.

De wortelknooppunt <bookstore> heeft 5 <book> knooppunten.

De eerste <book> knooppunt bevat 6 subknooppunten: <title>, <author>, <press>, <year>, <price> en <ISBN>.

Elke subnode bevat een tekstnode:

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

Tekst wordt altijd opgeslagen in de tekstnode

Een algemene fout in DOM-verwerking is het denken dat de elementnode de tekst bevat.

Echter, de tekst van de elementnode wordt opgeslagen in de tekstnode.

In dit voorbeeld:<year>2013</year>,het elementnode <year> bevat een tekstnode met de waarde "2012".

"2012" Nee De waarde van het element <year>!

XML DOM nodeboom

XML DOM ziet een XML-document als een boomstructuur. Deze boomstructuur wordt genoemdNodenboom.

Je kunt via deze boom alle nodes bereiken. Je kunt hun inhoud wijzigen of verwijderen, of nieuwe elementen aanmaken.

Deze boom toont de verzameling nodes en hun relaties. Het begint bij de rootnode en strekt uit naar de tekstnodes op de laagste laag van de boom:

DOM Node Tree

Het bovenstaande diagram vertegenwoordigt een XML-bestand books.xml.

Ouder, kind en broer nodes

De nodes in de nodenboom hebben allemaal een hiërarchische relatie met elkaar.

De termen 'ouder', 'kind' en 'broer' worden gebruikt om deze relatie te beschrijven. Een ouder heeft kinderen. Kinderen op dezelfde laag worden genoemd同级节点of broers of zussen.

  • In de nodenboom wordt de topnode de root genoemd
  • Behalve de rootnode heeft elke node maar één ouder
  • Een node kan een willekeurig aantal subnodes hebben
  • Bladeren zijn nodes zonder subnodes
  • Broers zijn nodes die dezelfde ouder hebben

Het onderstaande diagram toont een deel van de nodenboom en de relaties tussen de noden:

DOM Node Tree

Omdat XML-gegevens zijn opgebouwd in de vorm van een boom, kunnen ze worden doorzocht zonder de exacte structuur van de boom te kennen en zonder de datatypes van de gegevens te kennen die erin zijn opgenomen.

Je zult in latere hoofdstukken van deze handleiding meer leren over het doorzoeken van de nodenboom.

Opmerking:Hoofdnode: Parent Node, subnode: Children Node,同级节点: Sibling Node.

Eerste subnoden - Laatste subnoden

Kijk naar de volgende XML-fragment:

<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.