XML DOM uzly
Podle XML DOM je vše v XML dokumentu uzel :
- Celý dokument je uzel dokumentu
- Každý prvek XML je uzel prvku
- Text v prvcích XML jsou textové uzly
- Každý atribut je atributovým uzlem
- Komentáře jsou uzly komentářů
Příklad DOM
Podívejte se na následující soubor XML ( 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>
Kořenový uzel ve výše uvedeném XML se jmenuje <bookstore>.
Všechny ostatní uzly v dokumentu jsou obsaženy v <bookstore>.
Kořenový uzel <bookstore> obsahuje 4 uzly <book>.
První uzel <kniha> obsahuje podřízené uzly: <název>, <autor>, <rok> a <cena>.
Podřízené uzly obsahují každý jeden textový uzel, „každodenní italština“, „Giada De Laurentiis“, „2005“ a „30.00“.
Text je vždy uložen v textových uzlech
Běžnou chybou při zpracování modelu DOM je očekávat, že uzel prvku bude obsahovat text.
Text uzlu prvku je však uložen v textovém uzlu.
V tomto příkladu: <year>2005</year> , prvek uzel <year> obsahuje textový uzel s hodnotou "2005".
"2005" není hodnota prvku <year>!
Strom uzlu XML DOM
XML DOM zobrazuje XML dokument jako stromovou strukturu. Stromová struktura se nazývá uzlový strom.
Všechny uzly jsou přístupné přes strom. Jejich obsah lze upravovat nebo mazat a lze vytvářet nové prvky.
Strom uzlů zobrazuje sadu uzlů a spojení mezi nimi. Strom začíná v kořenovém uzlu a větví se k textovým uzlům na nejnižší úrovni stromu:
Obrázek výše představuje soubor XML books.xml .
Rodiče, děti a sourozenci uzlu
Uzly ve stromu uzlů mají mezi sebou hierarchický vztah.
K popisu vztahů se používají pojmy rodič, dítě a sourozenec. Rodičovské uzly mají děti. Děti na stejné úrovni se nazývají sourozenci (bratři nebo sestry).
- Ve stromu uzlů se nejvyšší uzel nazývá kořen
- Každý uzel, kromě kořene, má právě jeden nadřazený uzel
- Uzel může mít libovolný počet potomků
- List je uzel bez potomků
- Sourozenci jsou uzly se stejným rodičem
Následující obrázek ilustruje část stromu uzlů a vztah mezi uzly:
Protože jsou data XML strukturována ve stromové podobě, lze jimi procházet bez znalosti přesné struktury stromu a bez znalosti typu dat v nich obsažených.
Více o procházení stromem uzlů se dozvíte v pozdější kapitole tohoto tutoriálu.
První dítě - poslední dítě
Podívejte se na následující fragment XML:
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
</bookstore>
Ve výše uvedeném XML je element <title> prvním potomkem elementu <book> a element <price> je posledním potomkem elementu <book>.
Kromě toho je prvek <book> nadřazeným uzlem prvků <title>, <author>, <year> a <price>.