Introduction à XML et DOM pour débutants PHP
1.Qu'est-ce que DOM
Le DOM du W3C fournit un ensemble d'objets standards pour les documents HTML et XML, ainsi que des normes pour accéder et manipuler ces documents .
Le DOM du W3C est divisé en différentes parties (Core, XML et HTML) et différents niveaux (DOM niveau 1/2/3) :
* Core DOM - Un ensemble standard d'objets qui définit une norme pour tout document structuré
* XML DOM - définit un ensemble standard d'objets pour les documents XML
* HTML DOM - définit un ensemble standard d'objets pour les documents HTML
2.analyse XML
Pour lire et mettre à jour - créer et traiter - un document XML, vous avez besoin d'un analyseur XML.
Il existe deux types de base d'analyseurs XML :
· Analyseur arborescent : cet analyseur convertit le document XML en une structure arborescente. Il analyse l'intégralité du document et donne accès aux éléments de l'arborescence, tels que le modèle objet de document (DOM).
· Analyseur temporel : traitez les documents XML comme une série d'événements. Lorsqu'un événement spécifique se produit, l'analyseur appelle une fonction pour le gérer.
L'analyseur DOM est un analyseur arborescent
Regardez le fragment de document XML ci-dessous
<?xml version="1.0" encoding="ISO-8859 - 1"?>
<from>Jani</from>
XML DOM Traitez le XML ci-dessus comme une structure arborescente :
Niveau 1 : XML document
Niveau 2 : Élément racine : <from>
Niveau 3 : Élément texte : "Jani"
Instance :
On crée d'abord un fichier xml head.xml avec le code suivant
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
Ensuite on crée un fichier php avec le code suivant
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("head.xml"); print $xmlDoc->saveXML(); ?>
Comment parcourir xml
Créez d'abord un fichier xml, head.xml
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
puis créez un fichier php, le code est le suivant :
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("head.xml"); $x = $xmlDoc->documentElement; foreach ($x->childNodes AS $item){ print $item->nodeName . " = " . $item->nodeValue . "<br>"; } ?>