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


Volgens de XML DOM is alles in een XML-document een knooppunt :

  • Het hele document is een documentknooppunt
  • Elk XML-element is een elementknooppunt
  • De tekst in de XML-elementen zijn tekstknooppunten
  • Elk attribuut is een attribuutknooppunt
  • Opmerkingen zijn commentaarknooppunten

DOM-voorbeeld

Bekijk het volgende XML-bestand ( books.xml ):

×

koptekst

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="cooking">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
  <book category="children">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book category="web">
    <title lang="en">XQuery Kick Start</title>
    <author>James McGovern</author>
    <author>Per Bothner</author>
    <author>Kurt Cagle</author>
    <author>James Linn</author>
    <author>Vaidyanathan Nagarajan</author>
    <year>2003</year>
    <price>49.99</price>
  </book>
  <book category="web" cover="paperback">
    <title lang="en">Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</bookstore>

Het hoofdknooppunt in de XML hierboven heet <bookstore>.

Alle andere knooppunten in het document bevinden zich in <bookstore>.

De root node <bookstore> bevat 4 <book> nodes.

De eerste <book> node bevat de onderliggende nodes: <title>, <author>, <year> en <price>.

De onderliggende knooppunten bevatten elk één tekstknooppunt, "Everyday Italian", "Giada De Laurentiis", "2005" en "30.00".



Tekst wordt altijd opgeslagen in tekstknooppunten

Een veelvoorkomende fout bij DOM-verwerking is te verwachten dat een elementknooppunt tekst bevat.

De tekst van een elementknooppunt wordt echter opgeslagen in een tekstknooppunt.

In dit voorbeeld: <year>2005</year> , bevat het elementknooppunt <year> een tekstknooppunt met de waarde "2005".

"2005" is niet de waarde van het <jaar> element!


De XML DOM-knooppuntstructuur

De XML DOM ziet een XML-document als een boomstructuur. De boomstructuur wordt een node-tree genoemd.

Alle knooppunten zijn toegankelijk via de boom. De inhoud ervan kan worden gewijzigd of verwijderd en er kunnen nieuwe elementen worden gemaakt.

De knooppuntenboom toont de set knooppunten en de verbindingen daartussen. De boom begint bij het wortelknooppunt en vertakt zich naar de tekstknooppunten op het laagste niveau van de boom:

DOM-knooppuntboom

De afbeelding hierboven vertegenwoordigt het XML-bestand books.xml .


Knooppunt ouders, kinderen en broers en zussen

De knooppunten in de knooppuntenboom hebben een hiërarchische relatie tot elkaar.

De termen ouder, kind en broer of zus worden gebruikt om de relaties te beschrijven. Bovenliggende knooppunten hebben kinderen. Kinderen op hetzelfde niveau worden broers en zussen (broers of zussen) genoemd.

  • In een knooppuntenboom wordt het bovenste knooppunt de wortel genoemd
  • Elk knooppunt, behalve de wortel, heeft precies één bovenliggend knooppunt
  • Een knoop kan een willekeurig aantal kinderen hebben
  • Een blad is een knoop zonder kinderen
  • Broers en zussen zijn knooppunten met dezelfde ouder

De volgende afbeelding illustreert een deel van de knooppuntenboom en de relatie tussen de knooppunten:

Knooppuntboom

Omdat de XML-gegevens in een boomvorm zijn gestructureerd, kunnen ze worden doorkruist zonder de exacte structuur van de boom te kennen en zonder het type gegevens erin te kennen.

In een later hoofdstuk van deze zelfstudie leert u meer over het doorlopen van de knooppuntenboom.


Eerste kind - laatste kind

Bekijk het volgende XML-fragment:

<bookstore>
  <book category="cooking">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
</bookstore>

In de XML hierboven is het <title>-element het eerste onderliggende element van het <book>-element en het <price>-element is het laatste onderliggende element van het <book>-element.

Bovendien is het <book>-element het bovenliggende knooppunt van de <title>-, <author>-, <year>- en <price>-elementen.