L'extension DOM de PHP et Scriptol
Le Document Object Model est un standard et une recommandation du W3C
pour accéder au contenu de documents XML et HTML
Qu'est-ce que DOM?
Le Document Object
Model est une interface universelle et standard pour accéder au
contenu de documents XML ou XTML. Des fonction sont incluses également
pour construire et modifier dynamiquement la structure de ces documents avec
des scripts.
DOM peut être utilisé à partir de programmes JavaScript
imbriqués dans des pages web, ou dans des interfaces XUL ou tout outil
basé sur XML qui supporte JavaScript.
DOM fait partie d'Ajax, et il est donc essentiel pour réaliser des sites web modernes et des
applications web. On s'en sert pour traiter les fichiers XML récupérés
par XMLHttpRequest et pour modifier dynamiquement le contenu de pages web
à partir des données de ces fichiers. Il peut être utilisée
pour créer un document XML à partir des données d'un
formulaire et les envoyer au serveur.
L'interface DOM fait partie du langage de programmation PHP et peut être aussi bien utilisée à partir d'un programme Scriptol.
Installer et utiliser DOM
Sous PHP 5, il n'y a rien à installer, le package DOM fait partie
du langage de base.
Avec le langage Scriptol il faut juste inclure dans le source .sol un fichier d'en-tête:
include "dom.sol"
Principales classes et fonctions
DOM dispose de classes pour construire et accéder à la structure
du document (node, nodelist), et de classes pour lire et modifier les données
stockées dans le document (element, text).
L'interface est donc faite de ces classes et méthodes qui sont définies
dans l'interface Scriptol:
- DOMDocument
- getElementByID() Retourne l'élément dont l'ID est donnée.
- getElementsByTagName() Retourne la liste des élément dont pour un type de balise.
- DOMElement
- setAttribute() Change un attribut d'une balise ou le crée.
- DOMNode
- DOMNodeList
- item(n) Retourne le noeud n d'une nodelist créée par getElementsByTagName.
- DOMText
Méthodes de DOMDocument ajoutées à PHP qui ne font pas partie de la spécification:
- loadHTMLFile() Charge un fichier dans un DOMDocument.
- save()Sauve le DOMDocument dans un fichier XML ou HTML.
Démo simple
Cette démo très simple vient du manuel PHP et a été convertie en Scriptol:
DOMDocument doc = DOMDocument() DOMNode root = doc.createElement('book') root = doc.appendChild(root) DOMNode title = doc.createElement('title') title = root.appendChild(title) DOMText name = doc.createTextNode('This is the title') name = title.appendChild(name) print doc.saveXML()
Le but est de créer un document XML et de l'afficher.
- Le document doc est d'abord créé.
- Un noeud root est créé et ajouté comme descendant de
doc.
- Un noeud title node est ensuite inséré comme descendant de
root.
- Un élément name node est inséré comme donnée
de la balise title.
- Le document est affiché par le méthode saveXML().
Pour le sauver comme fichier, l'assigner à une variable et enregistrer son contenu dans le fichier:
text x = doc.saveXML() file f = fopen("name.xml", "w") f.write(x) f.close()
Télécharger
- Télécharger l'archive de la démo
(l'en-tête dom.sol est incluse).
Pour construire la démo, taper en ligne de commande:
solp domdemo
Pré-requis: L'interpréteur PHP 5. Le compilateur Scriptol-PHP.
- Recommandation DOM par le W3C, traduite en français. DOM 1 définit l'interface utilisée par l'extension.
- FAQ DOM au W3C.
- Pour plus d'infos sur DOM avec PHP, voir le manuel PHP.