Spécifications

W3C: XML Id (en)

Voir aussi

PHP et DOM

7.L'API DOM (Document Object Model)

7.1.Introduction

L'API DOM (Document Object Model, autrement dit Modèle objet de document) décrit un ensemble de méthodes et classes (elle se base en effet sur la programmation orienté objet[c'est quoi?]) permettant de naviguer et de créer un document de type XML (voire HTML).
Les spécifications du W3C ne proposent pas d'implémentation: libre à chaque éditeur (et langage) de proposer sa propre bibliothèque.
Nous ne nous intéresserons (dans un premier temps du moins) qu'aux méthodes de parcours d'un document existant (au détriment des méthodes de création).

7.2.Le document de référence

Afin d'illustrer nos explications nous nous appuierons sur le document XML suivant:
<?xml version="1.0"?>
<livre revision="3.2">
    <chapitre xml:id="chap1">
        <page>Chapitre 1 - Page 1</page>
    </chapitre>
    <chapitre xml:id="chap2" nom="api dom">
        <page>Chapitre 2 - Page 1</page>
        <page>Chapitre 2 - Page 1</page>
    </chapitre>
</livre>

7.3.L'objet Document

Document est l'objet par lequel commence toute manipulation d'un arbre DOM (REM: Selon l'implémentation son nom peut varier légèrement. Cette classe peut également s'appeler DOMDocument par exemple).
Cet objet présente, entre autres, les attributs et méthodes suivantes:
  • documentElement
  • getElementById()
  • getElementsByTagName()
L'attribut documentElement pointe sur l'élément racine du document (i.e. <livre> dans notre exemple).
La méthode getElementById() permet de retrouver dans l'arbre, l'élément ayant pour identifiant (id) la chaîne de caractères passée en paramètre.
rem
  • Pour un document HTML, l'identifiant est précisé par l'attribut "id"
  • Pour un document XML, l'identifiant est précisé par l'attribut "id" mais avec le préfix "xml" (soit l'attribut complet "xml:id")
La méthode getElementsByTagName() permet de retrouver dans l'arbre, l'ensemble des balises ayant pour nom la chaîne de caractères passée en paramètre.
L'objet Document hérite en outre des méthodes de la classe Node que nous allons voir plus loin.
Ces attributs et méthodes retournent donc un objet Element ou NodeList pour ce qui concerne getElementsByTagName().