« Programmation PHP/Exemples/DomXml » : différence entre les versions

Contenu supprimé Contenu ajouté
Tavernierbot (discussion | contributions)
m Robot : Changement de type cosmétique
Ligne 4 :
À travers cet exemple pratique nous écrirons une fonction pour convertir tout document XML en tableau suivant l'approche du web2 qui tient en deux tags très galvaudés [meta] et [data].
 
== Objectif ==
 
* Élaborer une fonction permettant de convertir en tableaux tout xml bien formé.
* Créer une classe utilitaire domxml pour la recevoir avec ses petites soeurs.
 
== Écriture d'un xml complexe ==
 
* Écriture d'un xml valide à imbrications multiples aux tags hétéroclites comportant des attributs ou non...
Ligne 35 :
* Sauvegarde de ce document.xml bien formé dans le même répertoire.
 
== Création de la fonction ==
 
On doit maintenant écrire une fonction, la plus optimale possible, pour charger document.xml dans un tableau...
Ligne 81 :
do
{
switch($next->node_type()) #2
{
case 3:
$tab['data']=$next->node_value();
break;
case 1:
$tab[$next->node_name()."#".++$i]['meta'] = $this->getAttribute($next);
$this->domxml2array($next,$tab[$next->node_name()."#".$i],$i);
break;
}
}while($next=$next->next_sibling()); #3
Ligne 120 :
</source>
 
== Création de la classe ==
On élabore une classe utilitaire pour php4 à implémenter au fur et à mesure :
* On la baptise DomTree
Ligne 137 :
var $domNode;
 
#constructor
 
function DomTree($xml,$type)
Ligne 181 :
do
{
switch($next->node_type())
{
case 3:
$tab['data']=$next->node_value();
break;
case 1:
$tab[$next->node_name()."#".++$i]['meta'] = $this->getAttribute($next);
$this->domxml2array($next,$tab[$next->node_name()."#".$i],$i);
break;
}
}while($next=$next->next_sibling());
Ligne 201 :
</source>
 
== Application ==
 
Dans un fichier test.php on instancie la classe et on l'exécute:
Ligne 229 :
</source>
 
== Aperçu ==
On obtient un arbre structuré easy2use pour le web2
 
Ligne 411 :
</source>
 
== En bref ==
On a une fonction fort utile à porter sur php5 ou à optimiser histoire de ne plus avoir d'incréments dans les données du tableau.