FICHIER XML => TABLEAU ASSOCIATIF

webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 - 11 août 2008 à 16:11
durealex Messages postés 23 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 26 août 2008 - 13 août 2008 à 15:09
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/47568-fichier-xml-tableau-associatif

durealex Messages postés 23 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 26 août 2008
13 août 2008 à 15:09
J'avoue que c'est un de mes default, et je vous montre pas ma premiere version ou j'ai utilisé aucune fonction xml. Mais un gentil monsieur ma dit que ca existé alors je me suis jeter sur les premières que j'ai trouvé.
Mais je vais lire avec plaisir le man de SimpleXML, merci à vous :)
webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 4
13 août 2008 à 10:59
Oui il y'a SimpleXML mais actuellement la classe que j'ai schématisée dans mon commentaire est en PHP 4. Je l'ai développée au bureau pour un projet client en PHP 4. Mais c'est clair que durealex aurait du se pencher tout de suite sur SimpleXML plutôt que de réinventer la roue.
cs_gege217 Messages postés 40 Date d'inscription jeudi 23 janvier 2003 Statut Membre Dernière intervention 13 août 2008
13 août 2008 à 09:41
Hello,

Sinon y'a un truc encore beaucoup plus simple, c'est l'extension simpleXML.

http://fr2.php.net4/manual/fr/book.simplexml.php

"L'extension SimpleXML fournit des outils très simples et faciles à utiliser pour convertir du XML en un objet qui peut être manipulé avec ses propriétés et les itérateurs de tableaux."

Les exemples qui expliquent comment c'est ultra simple d'utilisation sont là http://fr2.php.net/manual/fr/simplexml.examples.php
webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 4
12 août 2008 à 10:05
Salut,

Personnellement, au bureau je me suis créé une classe PHP me permettant de me faciliter la lecture de fichiers XML. Pour cela, j'utilise XPath qui est un langage permettant de naviguer dans un fichier XML. En retour, je reçois un tableau associatif qui me représente le noeud (ainsi que tous ses fils) sur lequel je me suis arrêté. Ce qui donne par exemple :

<?php

$o = new XMLFinder('mon_fichier.xml');
// Je recherche tous les noeuds <root><nodeA><nodeAB prenom="toto">
// Je récupère un tableau associatif avec les attributs et contenus texte de chaque noeud
$a = $o->xpath('/root/nodeA/nodeAB[@prenom="toto"]');
// Je ne veux que le contenu d'un noeud
$a = $o->xpath('/root/nodeA/nodeAB[@prenom="toto"]', XMLFinder::CONTENT);
// Je ne veux que les attributs d'un noeud
$a = $o->xpath('/root/nodeA/nodeAB[@prenom="toto"]', XMLFinder::ATTRIBUTES);
?>

Globalement ça ressemble à ça. Ca me permet de gagner beaucoup de temps et de la flexibilité :)

++
durealex Messages postés 23 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 26 août 2008
12 août 2008 à 09:42
C'est comme si ils existaient pas. C'est vrai que dans mon cas je n'en n'avais pas besoins. Mais c'est une idée mais cela viendrai à faire un array(array(array())) du bonheur en perspective :)
webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 4
11 août 2008 à 16:11
Et si j'ai des attributs dans mes tags ?
Rejoignez-nous