Nodes van XML DOM bereiken

Met DOM, kunt u elk knooppunt in het XML-document bereiken.

Knooppunt bereiken

U kunt knooppunten op drie manieren bereiken:

  • door gebruik te maken van de getElementsByTagName() methode
  • door de knooppuntboom te doorlopen (te verkennen)
  • door gebruik te maken van de relatie tussen knooppunten in de knooppuntboom

getElementsByTagName() methode

getElementsByTagName() retourneert alle elementen met de opgegeven tagnaam.

Syntaxis

node.getElementsByTagName("tagname");

Voorbeeld

Het volgende voorbeeld retourneert alle <title> elementen onder het x element:

x.getElementsByTagName("title");

Let op, de bovenstaande voorbeeld retourneert alleen de <title> elementen onder de x knooppunten. Om alle <title> elementen in het XML-document te retourneren, gebruik dan:

xmlDoc.getElementsByTagName("title");

Hierin,xmlDoc is het document zelf (document knooppunt).

DOM knooppuntlijst

getElementsByTagName() Deze methode retourneert een knooppuntlijst (node list). Een knooppuntlijst is een array van knopen.

x = xmlDoc.getElementsByTagName("title");

Je kunt de <title> elementen in x bereiken via de index. Als je de derde <title> wilt bereiken, kun je het volgende schrijven:

y = x[2];

Opmerking:De index begint bij 0.

Probeer het zelf

DOM knooppuntlijstlengte

length Kenmerken gebruiken om de lengte van de knooppuntlijst (aantal knopen) te definiëren.

Je kunt length Kenmerken om door de knooppuntlijst te loopen:

Voorbeeld

var x = xmlDoc.getElementsByTagName("title");
for (i = 0; i < x.length; i++) {
  // Hier kan je de code schrijven om elke knoop te verwerken
  }

Probeer het zelf

Knooppunttype

Knooppunten van het XML-document documentElement Kenmerken zijn de root-knooppunt.

Kenmerken van de knoop zijn. nodeName Kenmerken zijn de naam van de knoop.

Kenmerken van de knoop zijn. nodeType Kenmerken zijn het type van de knoop.

Je zult in het volgende hoofdstuk van deze handleiding meer leren over knooppuntkenmerken.

Probeer het zelf

Doorzoek knopen

De volgende code loopt door de onderliggende knopen van de root-knooppunt (ook elementknooppunten):

Voorbeeld

txt = "";
x = xmlDoc.documentElement.childNodes;
for (i = 0; i < x.length; i++) {
  // Alleen elementknooppunten (type 1) verwerken
  if (x[i].nodeType == 1) {
    txt += x[i].nodeName + "<br>";
  }
}

Probeer het zelf

Voorbeeld uitleg:

  1. Aannemen dat u ",books.xml"Laden in xmlDoc
  2. Ophalen van de onderliggende knopen van de root-element (xmlDoc)
  3. Controleer de node type van elke subnode. Als het node type is "1", dan is het een elementknooppunt
  4. Als het een elementknooppunt is, wordt de knooppunt naam weergegeven

Navigatie van knooppuntrelaties

De volgende code navigeert door het knooppuntentree met behulp van de relatie tussen de knopen:

Voorbeeld

x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;
txt = "";
for (i = 0; i < xlen; i++) {
  // Alleen elementknooppunten (type 1) verwerken
  if (y.nodeType == 1) {
    txt += y.nodeName + "<br>";
  }
  y = y.nextSibling;
}

Probeer het zelf

Voorbeeld uitleg:

  1. Aannemen dat u ",books.xml"Laden in xmlDoc
  2. Ophalen van de onderliggende knopen van het eerste book-element
  3. Stel de "y" variabele in op de eerste book element's eerste subnode
  4. Voor elke subnode (van de eerste subnode "y" (begin):
  5. Controleer de node type van elke subnode. Als het node type is "1" dan is het een elementnode
  6. Als het een elementnode is, dan wordt de naam van de node weergegeven
  7. Stel "y" Variabele instellen op de volgende同级 node, en loop opnieuw