XML -zelfstudie

XML HOME XML-introductie XML Hoe te gebruiken XML-structuur XML-syntaxis XML-elementen XML-kenmerken XML-naamruimten XML-weergave XML HTTP-verzoek XML-parser XML-DOM XML XPath XML XSLT XML XQuery XML XLink XML-validator XML-DTD XML Schema XML-server XML-voorbeelden XML-quiz XML-certificaat

XML AJAX

Ajax-introductie AJAX XMLHttp Ajax-verzoek Ajax-reactie AJAX XML-bestand AJAX PHP Ajax ASP AJAX-database AJAX-toepassingen Ajax-voorbeelden

XML-DOM

DOM-introductie DOM-knooppunten DOM-toegang DOM Node Info Lijst met DOM-knooppunten DOM doorkruisen DOM-navigatie DOM Waarden ophalen DOM-wijzigingsknooppunten DOM Knooppunten verwijderen DOM Knooppunten vervangen DOM Knooppunten maken DOM Knooppunten toevoegen DOM-kloonknooppunten DOM-voorbeelden

XPath- zelfstudie

XPath-introductie XPath-knooppunten XPath-syntaxis XPath-assen XPath-operators XPath-voorbeelden

XSLT- zelfstudie

XSLT-introductie XSL-talen XSLT-transformatie XSLT <sjabloon> XSLT <waarde-van> XSLT <voor elk> XSLT <sorteren> XSLT <if> XSLT <kiezen> XSLT toepassen XSLT op de client XSLT op de server XSLT Bewerk XML XSLT-voorbeelden

XQuery- zelfstudie

XQuery-introductie XQuery-voorbeeld XQuery FLWOR XQuery HTML XQuery-voorwaarden XQuery-syntaxis XQuery toevoegen XQuery selecteren XQuery-functies

XML -DTD

DTD Introductie DTD-bouwstenen DTD-elementen DTD-kenmerken DTD Elements vs Attr DTD-entiteiten DTD-voorbeelden

XSD- schema

XSD-introductie XSD Hoe kan ik? XSD <schema> XSD-elementen XSD-kenmerken XSD-beperkingen

XSD- complex

XSD-elementen XSD Leeg Alleen XSD-elementen Alleen XSD-tekst XSD gemengd XSD-indicatoren XSD <elke> XSD <anyAttribute> XSD-vervanging XSD-voorbeeld

XSD- gegevens

XSD-string XSD-datum XSD Numeriek XSD Diversen XSD-referentie

Webservices _

XML-services XML-WSDL XML SOAP XML-RDF XML-RSS

Referenties

Typen DOM-knooppunten DOM Node DOM-knooppuntlijst DOM NamedNodeMap DOM-document DOM-element DOM-kenmerk DOM-tekst DOM CDATA DOM-opmerking DOM XMLHttpRequest DOM-parser XSLT-elementen XSLT/XPath-functies

XML DOM - Toegang tot knooppunten


Met de DOM hebt u toegang tot elk knooppunt in een XML-document.


Probeer het zelf - Voorbeelden

De onderstaande voorbeelden gebruiken het XML-bestand books.xml .


Gebruik de methode getElementsByTagName() om het derde <title>-element in "books.xml" te krijgen


Gebruik de eigenschap length om alle <title>-elementen in "books.xml" te doorlopen


Gebruik de eigenschap nodeType om het knooppunttype van het hoofdelement in "books.xml" op te halen.


Gebruik de eigenschap nodeType om alleen elementknooppunten in "books.xml" te verwerken.


Gebruik de eigenschap nodeType en de eigenschap nextSibling om elementknooppunten in "books.xml" te verwerken.

×

koptekst


Toegang tot knooppunten

U kunt op drie manieren toegang krijgen tot een knooppunt:

1. Door de methode getElementsByTagName() te gebruiken

2. Door de knooppuntenboom te doorlopen (door te lopen).

3. Door door de knooppuntenboom te navigeren, gebruikmakend van de knooppuntrelaties.


De methode getElementsByTagName()

getElementsByTagName() retourneert alle elementen met een opgegeven tagnaam.

Syntaxis

node.getElementsByTagName("tagname");

Voorbeeld

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

x.getElementsByTagName("title");

Merk op dat het bovenstaande voorbeeld alleen <title>-elementen retourneert onder het x-knooppunt. Gebruik om alle <title>-elementen in het XML-document te retourneren:

xmlDoc.getElementsByTagName("title");

waarbij xmlDoc het document zelf is (documentknooppunt).



Lijst met DOM-knooppunten

De methode getElementsByTagName() retourneert een lijst met knooppunten. Een knooppuntenlijst is een array van knooppunten.

x = xmlDoc.getElementsByTagName("title");

De <title>-elementen in x zijn toegankelijk via indexnummer. Om toegang te krijgen tot de derde <title> kun je schrijven::

y = x[2];

Opmerking: de index begint bij 0.

In een later hoofdstuk van deze zelfstudie leert u meer over knooppuntlijsten.


Lengte DOM-knooppuntlijst

De eigenschap length definieert de lengte van een lijst met knooppunten (het aantal knooppunten).

U kunt door een lijst met knooppunten lopen met behulp van de eigenschap length:

Voorbeeld

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

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

Knooppunttypen

De eigenschap documentElement van het XML-document is het hoofdknooppunt.

De eigenschap nodeName van een node is de naam van de node.

De eigenschap nodeType van een knooppunt is het type van het knooppunt.

In het volgende hoofdstuk van deze tutorial leer je meer over de node-eigenschappen.


Doorkruisende knooppunten

De volgende code loopt door de onderliggende knooppunten, die ook elementknooppunten zijn, van het hoofdknooppunt:

Voorbeeld

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>";
  }
}

Voorbeeld uitgelegd:

  1. Stel dat u " books.xml " heeft geladen in xmlDoc
  2. De onderliggende knooppunten van het hoofdelement ophalen (xmlDoc)
  3. Controleer voor elk onderliggend knooppunt het type knooppunt. Als het knooppunttype "1" is, is het een elementknooppunt
  4. Voer de naam van het knooppunt uit als het een elementknooppunt is

Navigeren in knooprelaties

De volgende code navigeert door de knooppuntstructuur met behulp van de knooppuntrelaties:

Voorbeeld

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;
}

Voorbeeld uitgelegd:

  1. Stel dat u " books.xml "in xmlDoc . hebt geladen
  2. De onderliggende knooppunten van het eerste boekelement ophalen
  3. Stel de variabele "y" in als het eerste onderliggende knooppunt van het eerste boekelement
  4. Voor elke onderliggende node (beginnend met de eerste onderliggende node "y"):
  5. Controleer het knooppunttype. Als het knooppunttype "1" is, is het een elementknooppunt
  6. Voer de naam van het knooppunt uit als het een elementknooppunt is
  7. Stel de variabele "y" in als het volgende knooppunt van de broer of zus en doorloop de lus opnieuw