Page 1 sur 1

multiples pages XML et filtres

Posté : 09 oct. 2010, 17:16
par davidator
Bonjour à toutes et à tous
Je poste ici mon premier sujet car j'ai besoin d'aide!!!
je dois traiter des données xml en php, et j'avoue que je ne maitrise pas tout a fait le sujet, voire même pas du tout!!!!!!

mon souci: un fichier xml découpé en plusieurs pages du type:

Code : Tout sélectionner

http://minfichierdécoupé.xml?page=1 http://minfichierdécoupé.xml?page=2 http://minfichierdécoupé.xml?page=3
Chaque fichier contient 50 membres

Code : Tout sélectionner

<membres> −<membre> <classement>1</classement> <first_name>julien</first_name> <last_name>durand</last_name> <ville>PARIS</ville> </membre> −<membre> <classement>2</classement> <first_name>david</first_name> <last_name>bidule</last_name> <ville>LYON</ville> </membre> . . . . −<membre> <classement>50</classement> <first_name>gerard</first_name> <last_name>truc</last_name> <ville>MARSEILLE</ville> </membre> </membres>
je dispose d'environ 100 pages xml externes dont je ne peux pas modifier la structure.

Je sais parser page par page pour afficher une page de résultats sous forme d'un tableau.
<?php

// URL du Flux XML :
$fichier_xml = 'http://minfichierdécoupé.xml'; 


// Ouverture, lecture puis fermeture du Flux XML : 
$file = fopen($fichier_xml,"rb"); 
if ($file){ 
	$raw = '';
	while (!feof($file)) {
	  $raw .= fread($file, 8192);
	}
	fclose($file); 
	
	// D?but du code qui r?cup?re les infos xml : 
	if(eregi("<membres>(.*)</membres>",$raw,$rawbalise)){ 
		$balise = explode("<membre>", $rawbalise[0]); 
		$maximum = count($balise); ; 
		
		for ($i=1;$i<$maximum;$i++) { 
		
		//echo $balise[$i]."<hr>";
			eregi("<classement>(.*)</classement>",$balise[$i],$classement);
			eregi("<first_name>(.*)</first_name>",$balise[$i],$first_name);
			eregi("<last_name>(.*)</last_name>",$balise[$i],$last_name);
			eregi("<ville>(.*)</ville>",$balise[$i],$ville);
			
	

    if ($i % 2 == 0)
    {
     echo '<tr class="">';
    }
    else
    {
      echo '<tr class="odd">';
    }

	 echo 	'<td width="2%">'.$classement[1]."</td>\n";
	 echo 	'<td>'.$first_name[1]."&nbsp;".$last_name[1]."</td>\n";
	 
	 
	 echo 	'<td width="24%">'.$ville[1]."</td>\n";
	
	}
	}
	}

						
		
 
?>   
Mon problème est que sur plus de 5000 membres(100 pages xml de 50 membres) je veux filtrer sur le noeud »ville » et ainsi afficher le classement par ville.

Et la oups! Je sais pas comment aborder le sujet.

Je dispose d'une table MySql et je me suis dit que de tout importer à l'intérieur d'une table « membres » et ensuite afficher cette table via php pourrait être une solution, mais pareil, importer des tables xml dans mysql est obscure pour moi

Si quelqu'un sait comment faire,ou peut m'orienter vers une méthode, un livre, un tuto.............Je lui en serais tres reconnaissant!
Merci pour votre aide
David

Re: multiples pages XML et filtres

Posté : 09 oct. 2010, 18:12
par stealth35
pour lire du XMl c'est avec SimpleXML :wink:

Re: multiples pages XML et filtres

Posté : 09 oct. 2010, 20:13
par davidator
Merci mais le probleme n'est pas de lire le flux! c'est le manipuler!
Merci quand mm mais avec simpleXml, mon flux ne passe pas

Re: multiples pages XML et filtres

Posté : 09 oct. 2010, 20:20
par stealth35
Merci mais le probleme n'est pas de lire le flux! c'est le manipuler!
Merci quand mm mais avec simpleXml, mon flux ne passe pas
ah ? t'as quoi comme erreur ?

Re: multiples pages XML et filtres

Posté : 11 oct. 2010, 12:45
par davidator
page blanche!
Mais je vais voir avec la doc pour creuser

Re: multiples pages XML et filtres

Posté : 11 oct. 2010, 13:22
par stealth35
page blanche!
Mais je vais voir avec la doc pour creuser
il faut activer les erreurs pour PHP sinon tu vas pas t'en sortir...