Bonjour,
Je souhaite parser une fichier xml via SimpleXml mais je rencontre un soucis au niveau du nom des balises.
Le xml que l'on me fournit à cette forme :
Ce n'est pas moi qui suis à l'origine de ce XMl , je ne peut donc pas intervenir sur sa struture.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <adresses> <adresse> <une-id>1</une-id> <url-1>http://www.google1.fr</url-1> <url-2>http://www.google2.fr</url-2> <url-3>http://www.google3.fr</url-3> </adresse> ... </adresses>
J'essai de parser ce fichier avec le code suivant :
Mais ca plante lamentablement a cause du "-" dan le nom des balises. J'ai fait un test en remplacant avec des "_" et ca marche très bien. Certainement une erreur de syntaxe de ma part puisque PHP interprète le - comme un moins et non pas comme une partie du nom de la balise.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $xml = simplexml_load_file('ex.xml'); foreach($xml->adresse as $noeud) { if($noeud->une-id[0] == 1) { echo $noeud->url-2[0]; } }
Comment puis je régler ce problème ?
Mon autre problème est que ce fichier xml est assez volumineux (5mo) et est amené à grossir de plus en plus.
Du coup ma méthode de recherche est complètement dépasser et si je recherche "une-id" avec une valeur très grande je me retrouve avec des temps de génération assez conséquent
Y'a t'il une méthode de recherche simple et efficace me permettant de trouver la valeur désirée pour la balise "une-id" et afficher l'url correspondant à cette id ?
Je précise que je débute avec XML , j'ai donc peut être loupé quelques choses d'essentiel au niveau de la recherche.
Partager