Bonjour,
je suis débutant de débutant en PHP (ceci explique probablement cela).
J'ai lu tout un tas de discussions sur l'extraction de données d'un simplexml par l'outil PHP, mais à chaque fois les codes employés sont énormes (car les fichiers xml sont également énormes et ce que souhaitent faire les gens est complexe).
J'ai lu aussi des tutos sur l'utilisation de simplexml, mais j'ai vu uniquement des tutos qui expliquent comment extraire les données en fonctions de la position de la donnée dans le xml (par exemple ce code :
qui ne me permet que d'extraire les données de la deuxième « personne » de mon fichier xml)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?php $lieu = simplexml_load_file ( 'personnes_test.xml' ); echo $lieu -> personne[ 1 ] -> lieu ; ?>
Pour ma part, je cherche un truc tout simple, et peut-être que l'info est facile à trouver, mais je ne sais pas quels mots-clés chercher pour la trouver. Je suis peut-être passé devant sans la voir ().
Bref, voici un exemple de mon fichier xml (il est vraiment simple pour le moment puisque j'apprends pas à pas).
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <?xml version="1.0" encoding="UTF-8"?> <donnees> <personne id="Toto"> <lieu>Salle 205</lieu> </personne> <personne id="Titi"> <lieu>Salle 204</lieu> </personne> <personne id="Tutu"> <lieu>Lilliad</lieu> </personne> </donnees>
Donc on a Toto dont le lieu est Salle 205, Titi en Salle 204, etc. C'est basique.
Et je voudrais pouvoir dire à mon PHP d'aller chercher, par exemple, la valeur « lieu » de la personne dont le id est « Titi ».
Donc, ici, mon code echo $lieu -> personne[ 1 ] -> lieu ; fonctionne, bien sûr, puisque Titi est la 2eme personne du xml et que 1 ça correspond à la 2eme entrée (car ça commence par 0 (oui, oui, j'ai l'air d'enfiler des évidences, là, mais pour mon cerveau de débutant, c'est une révision indispensable)).
Bon, Mais si Titi se retrouve tout à coup à la 4eme place du xml, ben ça ne marche plus.
J'ai vu ici une discussion dans laquelle le début du code est
et j'ai l'impression que c'est un peu ce que je cherche à faire, mais le code qui est proposé ensuite est tellement compliqué que je m'y perds.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $xml = new SimpleXMLElement('test.xml',0, TRUE); $t = ''; foreach ($xml->agency as $key){ if($key['code'] == '2AV02'){
Est-ce qu'au moins cette piste-là est la bonne ?
Partager