DOM - Document Object Model
Interfacer les langages de programmation avec les documents
XML
en les associant avec un modèle orienté objet.
Ce document à été écrit
à partir de la documentation W3C.
DOM est une spécification W3C finale qui peut être implémentée sans avoir à craindre de modifications ultérieures.
Le but de DOM
Selon le W3C: "DOM permet aux programmes et scripts d'accéder et de modifier dynamiquement le contenu, la structure et le style de documents XML ou HTML".
De quoi est constitué DOM?
Le programmeur dispose d'objets, qui ont des propriétés,
des, méthodes et des évènements qui interfacent
le document XML ou HTML.
En résumé:
- un ensemble d'objets,
- un modèle pour la façon dont ces objets peuvent
être combinés,
- et une interface pour y accéder les manipuler.
DOM XML et HTML
Le coeur de DOM fournit:
1) les interfaces fondamentaux pour représenter tout document structuré.
2) des interfaces étendus qui représentent les documents xml.
La version XML doit implémenter à la fois l'interface
xml et l'interface fondamentale.
La version HTML fournit:
1) l'interface fondamentale comme ci-dessus,
2) l'interface étendue pour les documents html.
Comment utiliser DOM?
A travers les objets et leurs attributs et méthodes.Document
Document est un objet DOM correspondant à la page en cours. Toutefois certaines balises comme <iframe>, <browser> et <tabbrowser> peuvent introduire de nouveaux documents.
Méthodes statiques essentielles et attributs
- getElementById(x). Retourne la balise dont l'ID est x.
- innerHTML. Attribut pour lire ou assigner le contenu d'un ID.
- getElementsByName(x). Retourne la NodeList (liste de noeuds), dont les Nodes (noeuds) sont créés à partir des balises dont la classe (ou nom de balise pour XML) est x.
- item(n). Retourne l'élément en position n dans une NodeList.
- firstChild. Attribut désignant le premier élément enfant dans le Node, lequel est retourné par item(n).
- nextSibling. L'élément suivant. S'utilise après firstChild.
Méthodes dynamiques essentielles
- createElement(type, nom). Crée un élément et retourne un objet Element (un type de Node).
- appendChild(Node). Ajoute un élément à l'instance, en tant que dernier enfant.
- insertBefore(Node, Node).
- removeChild(Node).
- setAttribute(nom, valeur). Ajoute un attribut à l'élément.
Exemple d'utilisation avec JavaScript
var anchorList = document.getElementsByTagName("a") ;
for (var i = 0; i < anchorList.length ; i++)
{
alert("href: " + anchorList[i].href + "\n");
}
Cet exemple parse une page web pour trouver des liens et les afficher.
- document est un objet défini dans le coeur de dom pour représenter
le document.
- getElementsByTagName est une méthode de l'objet qui construit
un tableau avec chaque balise correspondant au paramètre, "a"
en l'occurrence.
- href est une propriété du DOM HTML.
- anchorList est une variable déclarée.
Termes relatifs à DOM
DOM implementation
Programme qui prend un document, XML or HTML, déja
parsé, et le met à disposition de l'interface dom.
DOM application
Un programme qui peut accéder le document par l'interface
DOM.
Un script à l'intérieur d'une page web est une application
DOM.
IDL (Interface Definition Language)
La définition de l'interface pour DOM est écrit
dans un langage nommé Object Management Group Interface
Definition Language (OMG IDL).
Des portages existent pour ECMAScript, Java, et peuvent être écrits
pour tout langages.
DOM et SAX (Simple Api for XML)
DOM et sax sont deux moyens de parser un document xml
et en utiliser le contenu. DOM est le plus simple, le plus intuitif.
Sax est plus rapide et consomme moins de mémoire.
- DOM charge le document en mémoire sous forme d'arborescence
et permet au programmeur d'appliquer des fonctions sur les éléments
de l'arbre.
- Sax est orienté évènements. Il associe des méthodes
aux balises, elles sont activées quand les balises sont atteintes lors
de la lecture. Les éléments sont lus en séquence, une
seule fois. Il faut fournir son propre modèle de document, alors qu'il
en est fourni un avec DOM.
Si vous voulez traiter un document avec des scripts, dom est plus
pratique.
Niveaux de DOM
Il y a plusieurs niveaux dans la spécification DOM
DOM 1
Il permet d'accéder au contenu d'un document XML ou HTML.
DOM 2
Le niveau 2 ajoute:
DOM 3
Le niveau 3 est en cours...
Une interface de requêtes est attendu ainsi que le chargement et la
sauvegarde.
Pour plus de détails de ce que va apporter le niveau 3, cliquer
ici.
Références
- Recommandation DOM 1. Elle spécifie les attributs et méthodes principaux de l'interface DOM.
- Recommandation DOM 2. Par le W3C.
- Diverses traductions.
- FAQ DOM au W3C. Devrait répondre à la plupart de vos questions. Sinon essayer la FAQ ici.
- Exemple d'utilisation de DOM. Remplacer des images dans une page web.
- Spécification DOM 3. Esquisse du niveau 3.