Parser un fichier XML

Parser un fichier XML - PHP - Programmation

Marsh Posté le 09-06-2008 à 14:28:58    

Bonjour,

 

Je dois parser les informations contenues dans un fichier XML que je trouve très mal fait :

 

Voici un exemple :

Code :
  1. <?xml version="1.0" encoding="iso-8859-1" ?>
  2. <MULTIFORM status="OK" >
  3. <N_PAISES>2</N_PAISES>
  4. <PAIS>AR</PAIS>
  5. <NOMBRE_PAIS_ES>Argentina</NOMBRE_PAIS_ES>
  6. <MONEDA>PESOS</MONEDA>
  7. <PAIS>AU</PAIS>
  8. <NOMBRE_PAIS_ES>Australia</NOMBRE_PAIS_ES>
  9. <MONEDA>AUS$</MONEDA>
  10. ...
  11. </MULTIFORM>
 

J'aimerais parser le fichier pour obtenir les informations sur chaque pays : comment puis-je faire, j'avoue que je bloque à cause du fait que chaque pays n'est pas vraiment délimité de façon distincte :/

 

Merci d'avance pour votre aide :jap:


Message édité par nero27 le 11-06-2008 à 09:26:39
Reply

Marsh Posté le 09-06-2008 à 14:28:58   

Reply

Marsh Posté le 09-06-2008 à 22:52:56    

utilise simple_xml, c'est super simple (!).
 
ya un guide sur developpez.com.


---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 09-06-2008 à 23:18:33    

Ok, je connais pas, je vais regarder ça ;)

Reply

Marsh Posté le 11-06-2008 à 09:26:44    

Alors, je viens de me mettre sur SimpleXML, mais je rencontre un petit souci dû au fichier XML mal conçu qui m'est fourni :
Les infos sont listées sans délimitations. Je m'explique : je dois récupérer les infos sur chaque pays (<PAIS> ), mais celles-ci sont contenues dans des balises qui suivent plutôt que dans des sous-balises (v. exemple dans le premier message) :/

 

Comment puis-je y accéder ?


Message édité par nero27 le 11-06-2008 à 09:26:59
Reply

Marsh Posté le 21-06-2008 à 16:48:55    

Ya aucun problème si tous les champs sont remplis pour chaque pays, sinon t'es bon pour manger des regexp avec preg_match_all().
 
Dans le cas numéro 1, en prenant un exemple simple, il te suffit de faire un foreach avec les pays et pour chaque nom trouvé tu le met dans un tableau.
 
Puis tu fais un foreach avec les devises et pour chaque nom trouvé tu le met dans un tableau.
 
...etc., tu fais de meme pour chaque balise.
 
A la fin t'as un tableau des pays, un tableau des devises...etc. où chaque indice a son équivalent dans les autres tableau.
Donc si t'as l'indice (en parcourant l'un des tableaux, par exemple) tu peux piocher les infos dont tu as besoin dans le tableau des pays, le tableau des devises...etc. et faire comme si tu lisais une ligne.


Message édité par CyberDenix le 21-06-2008 à 16:50:25

---------------
Directeur Technique (CTO)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed