Najnowsze tutoriale tworzenie stron internetowych
 

XML DOM - Uzyskanie dostępu do węzłów


Z DOM, można uzyskać dostęp do każdego węzła w dokumencie XML.


Spróbuj sam - przykłady

Poniższe przykłady użyć pliku XML Books.xml .

Dostęp do węzła przy użyciu swojego numeru indeksu na liście węzłów
Użyj getElementsByTagName() metodę, aby uzyskać trzeci <title> element "books.xml"

Pętli węzłów wykorzystujących właściwości length
Użyj właściwości długości pętli wszystkich <title> elementy "books.xml"

Zobacz typ węzła elementu
Użyj właściwości nodeType dostać typ węzła głównego elementu w "books.xml" .

Pętli węzłów elementu
Użyj właściwości nodeType elementowi węzłów przetwarzać tylko w "books.xml" .

Pętla przez węzły elementów z wykorzystaniem relacji węzła
Użyj właściwości nodeType i właściwość nextSibling przetwarzać węzły element "books.xml" .

×

nagłówek


Dostęp do węzłów

Można uzyskać dostęp do węzła na trzy sposoby:

1. Korzystając z getElementsByTagName() metody

2. przelotowego (traversing) drzewa węzłów.

3. Do poruszania się po drzewie węzłów, korzystając z relacji węzłów.


getElementsByTagName() Metoda

getElementsByTagName () zwraca wszystkie elementy o określonej nazwie znacznika.

Składnia

node.getElementsByTagName("tagname");

Przykład

Poniższy przykład zwraca wszystkie <title> elementy w elemencie x:

x.getElementsByTagName("title");

Należy zauważyć, że powyższy przykład zwraca tylko <title> elementów w węźle x. Aby przywrócić wszystkie <title> elementy wykorzystaniem dokumentu XML:

xmlDoc.getElementsByTagName("title");

gdzie xmldoc jest dokumentem sama (document node) .


Lista DOM Node

getElementsByTagName() Metoda zwraca listę węzłów. Lista węzłów jest tablicą węzłów.

x = xmlDoc.getElementsByTagName("title");

<title> elementy x można uzyskać poprzez numer indeksu. Aby uzyskać dostęp do trzeciego <title> można napisać ::

y = x[2];

Note: Indeks zaczyna się od 0.

Dowiesz się więcej o listach węzła w późniejszym rozdziale niniejszego poradnika.


Lista DOM Node Długość

Właściwość długość określa długość listy węzłów (the number of nodes) .

Można pętli listy węzłów za pomocą właściwości length:

Przykład

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

for (i = 0; i <x.length; i++) {
  // do something for each node
  }
Spróbuj sam "

typy węzłów

documentElement własność dokumentu XML jest węzeł główny.

nodeName własność węzła to nazwa węzła.

nodeType własność węzła jest typ węzła.

Dowiesz się więcej o właściwościach węzła w następnym rozdziale tego podręcznika.

Spróbuj sam


Węzły postępowe

Następujący kod w pętli węzłów podrzędnych, które są również węzły elementu węzła głównego:

Przykład

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>";
  }
}
Spróbuj sam "

Przykład wyjaśnił:

  1. Załóżmy, że masz załadowany " Books.xml " do xmldoc
  2. Uzyskaj węzły podrzędne elementu głównego (xmlDoc)
  3. Dla każdego węzła potomnego, sprawdź typ węzła. Jeżeli węzeł typu "1" jest wierzchołkiem elementu
  4. Wyjście nazwę węzła, jeśli węzeł jest elementem

Nawigacja Node Relacje

Poniższy kod przechodzi drzewo węzła wykorzystując relacje węzłów:

Przykład

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;
}
Spróbuj sam "

Przykład wyjaśnił:

  1. Załóżmy, że masz załadowany " Books.xml " do xmldoc
  2. Uzyskaj węzły potomne pierwszego elementu książki
  3. Ustaw "y" zmienną być pierwszy węzeł dziecko pierwszego elementu książki
  4. Dla każdego węzła potomnego (starting with the first child node "y") :
  5. Sprawdź typ węzła. Jeżeli węzeł typu "1" jest wierzchołkiem elementu
  6. Wyjście nazwę węzła, jeśli węzeł jest elementem
  7. Ustaw "y" zmienną być następny węzeł równorzędny i uruchom ponownie przez pętlę