Výukový program XML

XML HOME Úvod do XML XML Jak používat XML strom Syntaxe XML Prvky XML Atributy XML Jmenné prostory XML Zobrazení XML XML HttpRequest XML Parser XML DOM XML XPath XML XSLT XML XQuery XML XLlink XML Validator XML DTD Schéma XML XML server Příklady XML XML kvíz XML certifikát

XML AJAX

Úvod do AJAX AJAX XMLHttp Požadavek AJAX Odpověď AJAX Soubor XML AJAX AJAX PHP AJAX ASP Databáze AJAX Aplikace AJAX Příklady AJAX

XML DOM

Úvod do DOM DOM uzly Přístup k DOM Informace o uzlu DOM Seznam uzlů DOM DOM Traversing Navigace DOM DOM získat hodnoty DOM změnit uzly DOM Remove Nodes DOM nahradit uzly DOM Vytvořte uzly DOM Přidat uzly Klonovací uzly DOM Příklady DOM

Výukový program XPath

Úvod do XPath Uzly XPath Syntaxe XPath osy XPath Operátoři XPath Příklady XPath

Kurz XSLT

Úvod do XSLT Jazyky XSL Transformace XSLT XSLT <šablona> XSLT <hodnota-of> XSLT <pro každého> XSLT <sort> XSLT <if> XSLT <vyberte> Použít XSLT XSLT u klienta XSLT na serveru XSLT Úprava XML Příklady XSLT

Výukový program XQuery

Úvod do XQuery Příklad XQuery XQuery FLWOR HTML XQuery Podmínky XQuery Syntaxe XQuery Přidat XQuery XQuery Select Funkce XQuery

XML DTD

Úvod do DTD Stavební bloky DTD DTD prvky Atributy DTD DTD Elements vs Attr DTD entity Příklady DTD

XSD schéma

Úvod do XSD XSD Jak na to XSD <schéma> XSD prvky XSD atributy Omezení XSD

XSD komplex

XSD prvky XSD Prázdné Pouze prvky XSD Pouze text XSD XSD smíšené XSD indikátory XSD <libovolné> XSD <jakýkoliAtribut> Náhrada XSD Příklad XSD

XSD data

XSD řetězec Datum XSD Číselné XSD XSD Různé XSD reference

Webové služby

Služby XML XML WSDL XML SOAP XML RDF XML RSS

Reference

Typy uzlů DOM Uzel DOM DOM NodeList DOM NamedNodeMap Dokument DOM Prvek DOM Atribut DOM Text DOM DOM CDATA Komentář DOM DOM XMLHttpRequest DOM Parser Prvky XSLT Funkce XSLT/XPath

XML DOM - Accessing Nodes


S DOM máte přístup ke každému uzlu v dokumentu XML.


Zkuste si to sami - příklady

Níže uvedené příklady používají soubor XML books.xml .


Pomocí metody getElementsByTagName() získáte třetí prvek <title> v "books.xml"


Pomocí vlastnosti length můžete procházet všechny prvky <title> v "books.xml"


Pomocí vlastnosti nodeType získáte typ uzlu kořenového prvku v "books.xml".


Vlastnost nodeType použijte ke zpracování pouze uzlů elementu v "books.xml".


Pomocí vlastnosti nodeType a vlastnosti nextSibling zpracujte uzly prvků v souboru "books.xml".

×

Záhlaví


Přístup k uzlům

K uzlu můžete přistupovat třemi způsoby:

1. Pomocí metody getElementsByTagName().

2. Procházením (procházením) stromem uzlů.

3. Procházením stromu uzlů pomocí vztahů uzlů.


Metoda getElementsByTagName().

getElementsByTagName() vrací všechny prvky se zadaným názvem značky.

Syntax

node.getElementsByTagName("tagname");

Příklad

Následující příklad vrátí všechny prvky <title> pod prvkem x:

x.getElementsByTagName("title");

Všimněte si, že výše uvedený příklad vrací pouze prvky <title> pod uzlem x. Chcete-li vrátit všechny prvky <title> v dokumentu XML, použijte:

xmlDoc.getElementsByTagName("title");

kde xmlDoc je samotný dokument (uzel dokumentu).



Seznam uzlů DOM

Metoda getElementsByTagName() vrací seznam uzlů. Seznam uzlů je pole uzlů.

x = xmlDoc.getElementsByTagName("title");

K prvkům <title> v x lze přistupovat pomocí čísla indexu. Pro přístup ke třetímu <title> můžete napsat::

y = x[2];

Poznámka: Index začíná na 0.

Více o seznamech uzlů se dozvíte v pozdější kapitole tohoto kurzu.


Délka seznamu uzlů DOM

Vlastnost length definuje délku seznamu uzlů (počet uzlů).

Seznam uzlů můžete procházet pomocí vlastnosti length:

Příklad

var x = xmlDoc.getElementsByTagName("title");

for (i = 0; i <x.length; i++) {
  // do something for each node
  }

Typy uzlů

Vlastností documentElement dokumentu XML je kořenový uzel.

Vlastností nodeName uzlu je název uzlu.

Vlastnost nodeType uzlu je typ uzlu.

Více o vlastnostech uzlu se dozvíte v další kapitole tohoto tutoriálu.


Procházení uzlů

Následující kód prochází podřízenými uzly, které jsou také uzly prvků, kořenového uzlu:

Příklad

txt = "";
x = xmlDoc.documentElement.childNodes;

for (i = 0; i <x.length; i++) {
  // Process only element nodes (type 1)
  if (x[i].nodeType == 1) {
    txt += x[i].nodeName + "<br>";
  }
}

Vysvětlený příklad:

  1. Předpokládejme, že jste nahráli " books.xml " do xmlDoc
  2. Získejte podřízené uzly kořenového prvku (xmlDoc)
  3. U každého podřízeného uzlu zkontrolujte typ uzlu. Pokud je typ uzlu "1", jedná se o uzel prvku
  4. Vypište název uzlu, pokud se jedná o uzel prvku

Navigace ve vztazích uzlů

Následující kód se pohybuje ve stromu uzlů pomocí vztahů uzlů:

Příklad

x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;

txt = "";
for (i = 0; i <xlen; i++) {
  // Process only element nodes (type 1)
  if (y.nodeType == 1) {
    txt += y.nodeName + "<br>";
  }
  y = y.nextSibling;
}

Vysvětlený příklad:

  1. Předpokládejme, že jste nahráli " books.xml " do xmlDoc
  2. Získejte podřízené uzly prvního prvku knihy
  3. Nastavte proměnnou "y" jako první podřízený uzel prvního prvku knihy
  4. Pro každý podřízený uzel (začínající prvním podřízeným uzlem "y"):
  5. Zkontrolujte typ uzlu. Pokud je typ uzlu "1", jedná se o uzel prvku
  6. Vypište název uzlu, pokud se jedná o uzel prvku
  7. Nastavte proměnnou "y" jako další sourozenecký uzel a znovu proveďte smyčku