Tutoriel XML

ACCUEIL XML Introduction XML XML Comment utiliser Arbre XML Syntaxe XML Éléments XML Attributs XML Espaces de noms XML Affichage XML Requête HTTP XML Analyseur XML DOM XML XPath XML XML XSLT XQuery XML XMLXLink Validateur XML DTD XML Schéma XML Serveur XML Exemples XML XML Quiz Certificat XML

XMLAJAX

Présentation d'AJAX AJAX XMLHttp Requête AJAX Réponse AJAX Fichier XML AJAX PHP AJAX ASP AJAX Base de données AJAX Applications AJAX Exemples AJAX

DOM XML

Présentation du DOM Nœuds DOM Accès au DOM Informations sur le nœud DOM Liste des nœuds DOM Traversée du DOM Navigation DOM DOM Obtenir des valeurs Nœuds de changement DOM DOM Supprimer les nœuds DOM Remplacer les nœuds DOM Créer des nœuds DOM Ajouter des nœuds Nœuds de clonage DOM Exemples DOM

Tutoriel XPath

Présentation de XPath Nœuds XPath Syntaxe XPath Axes XPath Opérateurs XPath Exemples XPath

Tutoriel XSLT

Présentation de XSLT Langages XSL Transformation XSLT XSLT <modèle> XSLT <valeur-de> XSLT <pour-chaque> XSLT <sort> XSLT <si> XSLT <choisir> Appliquer XSLT XSLT sur le client XSLT sur le serveur XSLT Éditer XML Exemples XSLT

Tutoriel XQuery

Présentation de XQuery Exemple XQuery XQuery FLWOR XQuery HTML Termes XQuery Syntaxe XQuery Ajouter XQuery Sélection XQuery Fonctions XQuery

DTD XML

Présentation de la DTD Blocs de construction DTD Éléments DTD Attributs DTD Éléments DTD vs Attr Entités DTD Exemples de DTD

Schéma XSD

Présentation XSD Comment XSD XSD <schéma> Éléments XSD Attributs XSD Restrictions XSD

Complexe XSD

Éléments XSD XSD vide Éléments XSD uniquement Texte XSD uniquement XSD Mixte Indicateurs XSD XSD <tout> XSD <anyAttribute> Remplacement XSD Exemple XSD

Données XSD

Chaîne XSD Date XSD Numérique XSD Divers XSD Référence XSD

Services Web

Services XML XMLWSDL SAVON XML XML RDF XML RSS

Les références

Types de nœuds DOM Nœud DOM Liste de nœuds DOM DOM NamedNodeMap Documents DOM Élément DOM Attribut DOM Texte DOM DOM CDATA DOM Comment DOM XMLHttpRequest Analyseur DOM Éléments XSLT Fonctions XSLT/XPath

Nœuds DOM XML


Selon le XML DOM, tout dans un document XML est un nœud :

  • Le document entier est un nœud de document
  • Chaque élément XML est un nœud d'élément
  • Le texte dans les éléments XML sont des nœuds de texte
  • Chaque attribut est un nœud d'attribut
  • Les commentaires sont des nœuds de commentaires

Exemple DOM

Regardez le fichier XML suivant ( books.xml ):

×

Entête

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

Le nœud racine dans le XML ci-dessus est nommé <librairie>.

Tous les autres nœuds du document sont contenus dans <librairie>.

Le nœud racine <bookstore> contient 4 nœuds <book>.

Le premier nœud <book> contient les nœuds enfants : <title>, <author>, <year> et <price>.

Les nœuds enfants contiennent chacun un nœud de texte, "Everyday Italian", "Giada De Laurentiis", "2005" et "30.00".



Le texte est toujours stocké dans les nœuds de texte

Une erreur courante dans le traitement DOM est de s'attendre à ce qu'un nœud d'élément contienne du texte.

Cependant, le texte d'un nœud d'élément est stocké dans un nœud de texte.

Dans cet exemple : <year>2005</year> , le nœud d'élément <year> contient un nœud de texte avec la valeur "2005".

"2005" n'est pas la valeur de l'élément <year> !


L'arborescence des nœuds XML DOM

Le DOM XML considère un document XML comme une arborescence. La structure arborescente est appelée arbre à nœuds.

Tous les nœuds sont accessibles via l'arborescence. Leur contenu peut être modifié ou supprimé, et de nouveaux éléments peuvent être créés.

L'arborescence des nœuds montre l'ensemble des nœuds et les connexions entre eux. L'arborescence commence au nœud racine et se ramifie vers les nœuds de texte au niveau le plus bas de l'arborescence :

Arborescence des nœuds DOM

L'image ci-dessus représente le fichier XML books.xml .


Noeud parents, enfants et frères et sœurs

Les nœuds de l'arborescence des nœuds ont une relation hiérarchique les uns avec les autres.

Les termes parent, enfant et frère sont utilisés pour décrire les relations. Les nœuds parents ont des enfants. Les enfants du même niveau sont appelés frères et sœurs (frères ou sœurs).

  • Dans une arborescence de nœuds, le nœud supérieur est appelé la racine
  • Chaque nœud, à l'exception de la racine, a exactement un nœud parent
  • Un nœud peut avoir n'importe quel nombre d'enfants
  • Une feuille est un nœud sans enfant
  • Les frères et sœurs sont des nœuds avec le même parent

L'image suivante illustre une partie de l'arborescence des nœuds et la relation entre les nœuds :

Arbre de nœuds

Étant donné que les données XML sont structurées sous forme d'arbre, elles peuvent être parcourues sans connaître la structure exacte de l'arbre et sans connaître le type de données qu'il contient.

Vous en apprendrez plus sur la traversée de l'arborescence des nœuds dans un chapitre ultérieur de ce didacticiel.


Premier enfant - Dernier enfant

Examinez le fragment XML suivant :

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

Dans le XML ci-dessus, l'élément <title> est le premier enfant de l'élément <book> et l'élément <price> est le dernier enfant de l'élément <book>.

De plus, l'élément <book> est le nœud parent des éléments <title>, <author>, <year> et <price>.