Seznam uzlů XML DOM
Seznam uzlů vrací metoda getElementsByTagName() a vlastnost childNodes.
Zkuste si to sami - příklady
Níže uvedené příklady používají soubor XML books.xml .
Tento příklad používá metodu getElementsByTagName() k získání textu z prvního prvku <title> v "books.xml".
Tento příklad používá seznam uzlů a vlastnost length k procházení všemi prvky <title> v "books.xml"
Tento příklad používá seznam atributů k získání atributu z prvního prvku <book> v "books.xml".
Seznam uzlů DOM
Při použití vlastností nebo metod, jako jsou childNodes nebo getElementsByTagName(), je vrácen objekt seznamu uzlů.
Objekt seznamu uzlů představuje seznam uzlů ve stejném pořadí jako v XML.
K uzlům v seznamu uzlů se přistupuje s indexovými čísly začínajícími od 0.
Následující obrázek představuje seznam uzlů prvků <title> v " books.xml ":
Předpokládejme, že „books.xml“ je načten do proměnné xmlDoc.
Tento fragment kódu vrací seznam uzlů prvků title v "books.xml":
x = xmlDoc.getElementsByTagName("title");
Po provedení výše uvedeného příkazu je x objekt seznamu uzlů.
Následující fragment kódu vrací text z prvního prvku <title> v seznamu uzlů (x):
Příklad
var txt = x[0].childNodes[0].nodeValue;
Po provedení výše uvedeného příkazu txt = "každodenní italština".
Délka seznamu uzlů
Objekt seznamu uzlů se sám udržuje aktuální. Pokud je prvek odstraněn nebo přidán, seznam se automaticky aktualizuje.
Vlastností length seznamu uzlů je počet uzlů v seznamu.
Tento fragment kódu vrací počet prvků <title> v "books.xml":
x = xmlDoc.getElementsByTagName('title').length;
Po provedení výše uvedeného příkazu bude hodnota x 4.
Délku seznamu uzlů lze použít k procházení všech prvků v seznamu.
Tento fragment kódu používá vlastnost length k procházení seznamu prvků <title>:
Příklad
x = xmlDoc.getElementsByTagName('title');
xLen = x.length;
for (i = 0; i <xLen; i++) {
txt += x[i].childNodes[0].nodeValue) + " ";
}
Výstup:
Everyday Italian
Harry Potter
XQuery Kick Start
Learning XML
Vysvětlený příklad:
- Předpokládejme, že „ knihy.xml “ je načten do xmlDoc
- Nastavte proměnnou x tak, aby obsahovala seznam uzlů všech prvků nadpisu
- Shromážděte hodnoty textových uzlů z prvků <title>
Seznam atributů DOM (mapa pojmenovaných uzlů)
Vlastnost atributů uzlu prvku vrací seznam uzlů atributů.
Říká se tomu pojmenovaná mapa uzlů a je podobná seznamu uzlů, s výjimkou některých rozdílů v metodách a vlastnostech.
Seznam atributů se sám udržuje aktuální. Pokud je atribut odstraněn nebo přidán, seznam se automaticky aktualizuje.
Tento fragment kódu vrací seznam uzlů atributů z prvního prvku <book> v "books.xml":
x = xmlDoc.getElementsByTagName('book')[0].attributes;
Po provedení výše uvedeného kódu je x.length = počet atributů a x.getNamedItem() lze použít k vrácení atributového uzlu.
Tento fragment kódu získá hodnotu atributu „kategorie“ a počet atributů knihy:
Příklad
x = xmlDoc.getElementsByTagName("book")[0].attributes;
txt = x.getNamedItem("category").nodeValue + " " + x.length;
Výstup:
cooking
1
Vysvětlený příklad:
- Předpokládejme, že „ knihy.xml “ je načten do xmlDoc
- Nastavte proměnnou x tak, aby obsahovala seznam všech atributů prvního prvku <book>
- Získejte hodnotu atributu "category" a délku seznamu atributů