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:

Méthodes de DOMDocument ajoutées à PHP qui ne font pas partie de la spécification:

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

Pour construire la démo, taper en ligne de commande:

solp domdemo

Pré-requis: L'interpréteur PHP 5. Le compilateur Scriptol-PHP.

Ressources