Bonjour, je me permet de créer un nouveau sujet afin de savoir s'il existe une solution plus simple (et moins "couteuse" qu'un foreach) pour récupérer une information d'un fichier XML.
Pour la petite histoire, il y a une carte de France qui permet à l'utilisateur de sélectionner un département. Le numéro du département est transmis via l'url (liste.php?dep=XX). Je souhaite donc afficher le numéro (ça c'est bon, il est déjà dans l'url) et le nom du département qui correspond. Mon petit bout de code ci-dessous fonctionne pour récupérer le nom, mais je souhaiterais savoir s'il n'y a pas d'autres solutions plus simple et surtout, moins couteuse qu'un foreach (heureusement que je ne souhaite pas recenser toutes les villes, ça serait bien long de parcourir tout le fichier) ?
Étant donné que chaque département à un attribut "num" unique, n'est-il pas possible de récupérer directement une information quelconque (que ça soit la valeur du noeud ou un attribut) lié à ce numéro, et ce, sans avoir à parcourir tout les autres départements ?
Code qui me permet d'extraire le nom d'un département : 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
17
18 $dep_num = $_GET['dep']; // numéro du département transmis via l'URL (à partir de la carte) // initialisation du XML $dom = new DomDocument(); $dom->load('datas.xml'); $liste_dep = $dom->getElementsByTagName("dep"); // On liste tout les départements foreach($liste_dep as $dep) { // On récupère le nom du département qui correspond au numéro if ($dep->getAttribute("num") == $dep_num) { $dep_nom = utf8_decode($dep->nodeValue); // Nom du département (valeur du noeud), avec décodage utf8 pour les accents break; // inutile de continuer } }
Code du fichier XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <departements> <region name="Bretagne" enable="true" href="#" zoomable="true"> <dep num='29' href='liste.php?dep=29'>Finistère</dep> <dep num='22' href='liste.php?dep=22'>Côtes-d'Armor</dep> <dep num='56' href='liste.php?dep=56'>Morbihan</dep> <dep num='35' href='liste.php?dep=35'>Ille-et-Vilaine</dep> </region> </departements>
2. Je souhaite ensuite faire évoluer mon fichier XML : est-il possible de rajouter un attribut "personnalisé" (comme nombre='XXX') et ensuite pouvoir récupérer la valleur "nombre" d'un département précis ?
Merci d'avance pour votre aide.
Partager