Parser du XML avec PHP

Publié le 24 novembre 2011 - Developpement Web. Tags : , ,

Difficile de se passer du XML par les temps qui courent, tant les usages possibles sont nombreux et sa facilité d’utilisation déconcertante. Ne serait-ce que pour utiliser les APIs des diverses plateformes Web, il est devenu absolument nécessaire de savoir faire avec, le format XML devenant un véritable standard cross-plateformes. Ainsi, pour chaque langage, il existe une multitude parser XML, plus ou moins performants. Et en ce qui concerne PHP, vous n’avez que l’embarras du choix : entres classes complexes et scripts sans intérêt, il devient vite difficile de se frayer un chemin dans cette jungle.

Bref, tout ce blabla pour vous présenter ma trouvaille du jour, l’excellentissime xml2array(). Cette fonction est la preuve qu’il est possible de faire de la magie en simplement quelques dizaines de lignes de codes. Alors certes, pour certains, ce code n’est pas d’une propreté exemplaire (encore que, il y aurait beaucoup à dire), n’empêche que les résultats sont bien là et tout ce qui tient souvent dans des librairies ne tient ici qu’en un seul fichier! Il est au passage possible de parser les attributs en plus des tags, selon vos besoins. Chapeau bas messieurs, parser du XML n’a jamais été aussi simple !

Au fait, on obtient quoi ? Le résultat est un tableau PHP multidimensionnel tout ce qu’il y a de plus classique, dont la profondeur dépend du nombre d’items et sous-items de votre source XML. En ce qui me concerne j’ai testé cette solution jusqu’à une profondeur de 6 niveaux, aucun problème à signaler. Il semblerait cependant que selon la configuration de votre serveur, des erreurs fatales se produisent aux alentours du 10ème sous item.A vérifier

Quoi qu’il en soit, il s’agit d’un script à avoir sous la main, tant les applications peuvent êtres nombreuses.

Notez que dans l’exemple fourni,  la source XML est appelée par un file_get_contents(). N’oubliez pas que si votre serveur est paramétré avec Allow_url_fopen=OFF, il vous faudra utiliser une alternative.


Articles sur ce thème :
Aucun article lié.