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

Contenu supprimé Contenu ajouté
m →‎En bref : avec AWB
Aucun résumé des modifications
Ligne 7 :
== Objectif ==
 
* Élaborer une fonction permettant de convertir en tableaux tout xmlXML bien formé.
* Créer une classe utilitaire domxml pour la recevoir avec ses petites sœurs.
 
Ligne 49 :
</source>
 
* 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...
 
Cette fonction doit :
Ligne 59 :
* doit migrer les attributs et le contenu dans un tableau
 
On écrit la fonction récursive qui décapsulera chaque tag en deux sous-tableaux par tag ([meta] ou attibutsattributs ) et ( [data] ou noeud textnœud texte)
 
Cette fonction doit :
* tester le type de noeudnœud (texttexte ou tag)
* ? si tag >extraire tous ses attributs dans >[meta]
* ? si texte >extraire le texte dans >[data]
Ligne 68 :
** les tags de débuts et de fins ne se suivent pas...
** la fonction sera donc récursive et s'appellera elle-même pour un output [[lifo]]. Elle devra donc se passer son propre résultat en paramètre
** par soucis du détail technique on fera une fonction <code>getAttribute()</code> pour optimiser le code
 
<source lang="php">
Ligne 85 :
 
Description :
*Pour chaque attribut, on place le contenu à une clé du tableau <code>tab</code> à retourner.
 
On s'attaque ensuite au plus gros du travail de notre convertisseur à savoir <code>domxml2array()</code> :
 
<source lang="php">
Ligne 114 :
 
Description :
# si le premier childenfant existe
# on test le type de noeudnœud
# on passe au noeudnœud suivant
 
La fonction utilitaire print_r_html disponible sur php.net permettra de déposer le contenu à l'écran :
Ligne 138 :
== Création de la classe ==
On élabore une classe utilitaire pour php4 à implémenter au fur et à mesure :
* On la baptise ''DomTree''.
* On y implémente les fonctions créées...
* On sauvegarde la classe dans <code>DomTree.Class.php</code>.
 
<source lang="php">