multiples pages XML et filtres
Posté : 09 oct. 2010, 17:16
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:
Chaque fichier contient 50 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.
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
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=3Code : 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 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]." ".$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