XML DOM nodes
Volgens die XML DOM is alles in 'n XML-dokument 'n nodus :
- Die hele dokument is 'n dokumentnodus
- Elke XML-element is 'n elementnodus
- Die teks in die XML-elemente is teksnodusse
- Elke kenmerk is 'n kenmerknodus
- Opmerkings is kommentaarnodes
DOM Voorbeeld
Kyk na die volgende XML-lêer ( 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>
Die wortelnodus in die XML hierbo word <boekwinkel> genoem.
Alle ander nodusse in die dokument is vervat in <boekwinkel>.
Die wortelnodus <boekwinkel> bevat 4 <boek> nodusse.
Die eerste <boek> nodus bevat die kind nodusse: <titel>, <outeur>, <jaar> en <prys>.
Die kind nodusse bevat een teks node elk, "Everyday Italian", "Giada De Laurentiis", "2005" en "30.00".
Teks word altyd in teksnodes gestoor
'n Algemene fout in DOM-verwerking is om te verwag dat 'n elementnodus teks bevat.
Die teks van 'n elementnodus word egter in 'n teksnodus gestoor.
In hierdie voorbeeld: <year>2005</year> , die element node <year> hou 'n teks node met die waarde "2005".
"2005" is nie die waarde van die <jaar>-element nie!
Die XML DOM Node Tree
Die XML DOM beskou 'n XML-dokument as 'n boomstruktuur. Die boomstruktuur word 'n knoopboom genoem .
Alle nodusse kan deur die boom verkry word. Hul inhoud kan gewysig of uitgevee word, en nuwe elemente kan geskep word.
Die nodusboom wys die stel nodusse en die verbindings tussen hulle. Die boom begin by die wortelknoop en vertak na die teksnodes op die laagste vlak van die boom:
Die prent hierbo verteenwoordig die XML-lêer books.xml .
Node-ouers, kinders en broers en susters
Die nodusse in die nodusboom het 'n hiërargiese verhouding tot mekaar.
Die terme ouer, kind en broer of suster word gebruik om die verhoudings te beskryf. Ouernodusse het kinders. Kinders op dieselfde vlak word broers en susters (broers of susters) genoem.
- In 'n nodusboom word die boonste nodus die wortel genoem
- Elke nodus, behalwe die wortel, het presies een ouer node
- 'n Nodus kan enige aantal kinders hê
- 'n Blaar is 'n knoop sonder kinders
- Broers en susters is nodusse met dieselfde ouer
Die volgende prent illustreer 'n deel van die nodusboom en die verhouding tussen die nodusse:
Omdat die XML-data in 'n boomvorm gestruktureer is, kan dit deurkruis word sonder om die presiese struktuur van die boom te ken en sonder om te weet watter tipe data daarin vervat is.
Jy sal meer leer oor die deurkruising van die nodusboom in 'n latere hoofstuk van hierdie tutoriaal.
Eerste kind - Laaste kind
Kyk na die volgende XML-fragment:
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
</bookstore>
In die XML hierbo is die <title> element die eerste kind van die <book> element, en die <price> element is die laaste kind van die <book> element.
Verder is die <boek>-element die ouernodus van die <titel>-, <outeur>-, <jaar>- en <prys>-elemente.