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 - Navigeren in knooppunten


Knooppunten kunnen worden genavigeerd met behulp van knooppuntrelaties.

×

Header


Navigeren door DOM-knooppunten

Toegang tot knooppunten in de knooppuntenboom via de relatie tussen knooppunten, wordt vaak "navigerende knooppunten" genoemd.

In de XML DOM worden knooppuntrelaties gedefinieerd als eigenschappen voor de knooppunten:

  • parentNode
  • childNodes
  • eerstgeborene
  • laatste kind
  • volgendeSibling
  • vorigeBroer/zus

De volgende afbeelding illustreert een deel van de knooppuntenstructuur en de relatie tussen knooppunten in books.xml :

Knooppuntboom


DOM - Bovenliggend knooppunt

Alle knooppunten hebben precies één bovenliggend knooppunt. De volgende code navigeert naar het bovenliggende knooppunt van <book>:

Voorbeeld

function myFunction(xml) {
var xmlDoc = xml.responseXML;
    var x = xmlDoc.getElementsByTagName("book")[0];
    document.getElementById("demo").innerHTML = x.parentNode.nodeName;
}

Voorbeeld uitgelegd:

  1. Laad " books.xml " in xmlDoc
  2. Verkrijg het eerste <book> element
  3. Voer de knooppuntnaam van het bovenliggende knooppunt van "x" uit


Vermijd lege tekstknooppunten

Firefox en sommige andere browsers zullen lege spaties of nieuwe regels als tekstknooppunten behandelen, Internet Explorer niet.

Dit veroorzaakt een probleem bij het gebruik van de eigenschappen: firstChild, lastChild, nextSibling, previousSibling.

Om het navigeren naar lege tekstknooppunten (spaties en nieuwe-regeltekens tussen elementknooppunten) te vermijden, gebruiken we een functie die het knooppunttype controleert:

function get_nextSibling(n) {
    var y = n.nextSibling;
    while (y.nodeType! = 1) {
        y = y.nextSibling;
    }
    return y;
}

Met de functie hierboven kunt u get_nextSibling( node ) gebruiken in plaats van de eigenschap node .nextSibling.

Code uitgelegd:

Elementknooppunten zijn van het type 1. Als het zusterknooppunt geen elementknooppunt is, gaat het naar de volgende knooppunten totdat een elementknooppunt is gevonden. Op deze manier is het resultaat hetzelfde in zowel Internet Explorer als Firefox.


Verkrijg het eerste onderliggende element

De volgende code geeft het eerste elementknooppunt van het eerste <boek> weer:

Voorbeeld

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();

function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    var x = get_firstChild(xmlDoc.getElementsByTagName("book")[0]);
    document.getElementById("demo").innerHTML = x.nodeName;
}

//check if the first node is an element node
function get_firstChild(n) {
    var y = n.firstChild;
    while (y.nodeType != 1) {
        y = y.nextSibling;
    }
    return y;
}
</script>

</body>
</html>

Uitgang:

title

Voorbeeld uitgelegd:

  1. Laad " books.xml " in xmlDoc
  2. Gebruik de functie get_firstChild op het eerste <book> elementknooppunt om het eerste onderliggende knooppunt te krijgen dat een elementknooppunt is
  3. Voer de knooppuntnaam uit van het eerste onderliggende knooppunt dat een elementknooppunt is

Meer voorbeelden


Dit voorbeeld gebruikt de methode lastChild() en een aangepaste functie om het laatste onderliggende knooppunt van een knooppunt te krijgen


Dit voorbeeld gebruikt de methode nextSibling() en een aangepaste functie om het volgende knooppunt van een knooppunt op te halen


In dit voorbeeld wordt de methode previousSibling() en een aangepaste functie gebruikt om het vorige zusterknooppunt van een knooppunt te krijgen