Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Requête sur un flux xml?

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
cuirwebmaster
Nouveau WRInaute

Inscrit le: 04 Mai 2007
Messages: 28

URL permanente de ce messagePosté le : Mer Mai 14, 2008 22:24    Sujet du message: Requête sur un flux xml?

Bonsoir, ma question est certainement très bête mais j'avoue ma totale "novicitude"!

j'ai un flux xml qui ressemble à ça (Les connaisseurs reconnaitront l'origine! Wink )

Code:

<?xml version="1.0" encoding="UTF-8" ?>
<profil>
   <item>
      <id>5286774</id>
      <login>XXXXX</login>
      <sexe>Un homme</sexe>
      <age>26</age>
      <yeux>Vert</yeux>
      <cheveux>Brun</cheveux>
      <pays>France</pays>
      <region>Pays de la Loire</region>
      <departement>44</departement>
      <nom_departement>Loire Atlantique</nom_departement>
      <ville>Nantes</ville>
      <description>bla bla bal</description>
      <webcam>no</webcam>
   </item>


Pour afficher ce flux j'utilise ceci

Code:

<?php
$file = "XXX.com/flux/XML.php?sexe=0&age_max=25&pays=fr";
$flux_xml = implode("", @file($file));

eregi("<item>(.*)</item>",$flux_xml,$rawresults);
$results = explode("<item",$rawresults[0]);
$max = count($results)-1;

for($i=0;$i<$max;$i++){
    eregi("<login>(.*)</login>",$results[$i+1], $login);
    eregi("<id>(.*)</id>",$results[$i+1], $id);
    eregi("<photo>(.*)</photo>",$results[$i+1], $photo);
    eregi("<sexe>(.*)</sexe>",$results[$i+1], $sexe);
    eregi("<age>(.*)</age>",$results[$i+1], $age);
    eregi("<yeux>(.*)</yeux>",$results[$i+1], $yeux);
    eregi("<cheveux>(.*)</cheveux>",$results[$i+1], $cheveux);
    eregi("<departement>(.*)</departement>",$results[$i+1], $departement);

    echo "<img src=\"XXX.com/".$photo[1]."\" alt=\"photo de ".$login[1]."\" /><br />";
    echo "login : ".$login[1]."<br />\n";
    echo "sexe : ".$sexe[1]."<br />\n";
    echo "age : ".$age[1]."<br />\n";
    echo "yeux : ".$yeux[1]."<br />\n";
    echo "cheveux : ".$cheveux[1]."<br />\n";
    echo "département : ".$departement[1]."<br />\n";
    echo "<a href=\"XXX/u_page.php?id=1248445\">Voir le profil</a><br /><br />\n\n";

}
?>


Et ma question est: Puis-je effectuer une requête sur ce flux XML afin de n'afficher que les entités dont la balise <nom_departement> est par exemple "Normandie"?

Merci d'avance Wink
 
cuirwebmaster
audit.referencement
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 16 Fév 2008
Messages: 121

URL permanente de ce messagePosté le : Jeu Mai 15, 2008 1:57    Sujet du message: Requête sur un flux xml?

Lol, j'ai reconnu l'origine, effectivement.

Aucun problème pour ce que tu souhaites faire, une simple condition suffit.
 
audit.referencement
cuirwebmaster
Nouveau WRInaute

Inscrit le: 04 Mai 2007
Messages: 28

URL permanente de ce messagePosté le : Jeu Mai 15, 2008 3:09    Sujet du message: Requête sur un flux xml?

Je pensais avoir compris le principe des conditions, cependant il n'en est rien Embarassed

Est-ce juste une nouvelle variable à créer? Cela a t-il quelques chose a voir avec le XSL? J'ai cherché des exemples de "requête" sur du XML mais je n'ai rien trouvé? Est-ce a base de if/else?

Si une bonne âme voulait bien me donner un nouvel indice !!!
 
cuirwebmaster
webmasterlamogere
WRInaute accro
WRInaute accro

Inscrit le: 17 Déc 2006
Messages: 1604
Localisation: urlrewriting.fr

URL permanente de ce messagePosté le : Jeu Mai 15, 2008 7:35    Sujet du message: Requête sur un flux xml?

tu peut ajouter le test autour des "echo" :
Code:
<?php
$file = "XXX.com/flux/XML.php?sexe=0&age_max=25&pays=fr";
$flux_xml = implode("", @file($file));

eregi("<item>(.*)</item>",$flux_xml,$rawresults);
$results = explode("<item",$rawresults[0]);
$max = count($results)-1;

for($i=0;$i<$max;$i++){
    eregi("<login>(.*)</login>",$results[$i+1], $login);
    eregi("<id>(.*)</id>",$results[$i+1], $id);
    eregi("<photo>(.*)</photo>",$results[$i+1], $photo);
    eregi("<sexe>(.*)</sexe>",$results[$i+1], $sexe);
    eregi("<age>(.*)</age>",$results[$i+1], $age);
    eregi("<yeux>(.*)</yeux>",$results[$i+1], $yeux);
    eregi("<cheveux>(.*)</cheveux>",$results[$i+1], $cheveux);
    eregi("<departement>(.*)</departement>",$results[$i+1], $departement);

if ($departement[1] == "Normandie") {
    echo "<img src=\"XXX.com/".$photo[1]."\" alt=\"photo de ".$login[1]."\" /><br />";
    echo "login : ".$login[1]."<br />\n";
    echo "sexe : ".$sexe[1]."<br />\n";
    echo "age : ".$age[1]."<br />\n";
    echo "yeux : ".$yeux[1]."<br />\n";
    echo "cheveux : ".$cheveux[1]."<br />\n";
    echo "département : ".$departement[1]."<br />\n";
    echo "<a href=\"XXX/u_page.php?id=1248445\">Voir le profil</a><br /><br />\n\n";
}

}
?>
 
webmasterlamogere Visiter le site web du posteur
bproductiv
WRInaute accro
WRInaute accro

Inscrit le: 27 Déc 2004
Messages: 2262
Localisation: La roche s/ yon

URL permanente de ce messagePosté le : Jeu Mai 15, 2008 10:13    Sujet du message: Requête sur un flux xml?

il y a des classe pour manipuler le xml qui existent et open source
 
bproductiv Visiter le site web du posteur
Bacteries
WRInaute accro
WRInaute accro

Inscrit le: 27 Mai 2004
Messages: 1034
Localisation: France - Nantes

URL permanente de ce messagePosté le : Jeu Mai 15, 2008 10:29    Sujet du message: Requête sur un flux xml?

Oui voilà, y'a des classes pour manipuler du XML, via du xpath (langage de requête pour le XML) ou autre.
 
Bacteries Visiter le site web du posteur
cuirwebmaster
Nouveau WRInaute

Inscrit le: 04 Mai 2007
Messages: 28

URL permanente de ce messagePosté le : Jeu Mai 15, 2008 10:45    Sujet du message: Requête sur un flux xml?

Bacteries a écrit:
Oui voilà, y'a des classes pour manipuler du XML, via du xpath (langage de requête pour le XML) ou autre.


Oui j'ai parcouru la doc xpath mais j'avoue ne rien n'y comprendre. Cependant il faudra bien que je m'y mette afin d'exploiter pleinement les possibilités offertes par le xml. Cependant mes connaissances sont maigres tant en php qu'en xml. Il faut que je reprenne tout depuis le début Crying or Very sad Néanmois, je remercie webmasterlamogere pour la solution qu'il m'a donnée et qui semble fonctionner.

J'en profite pour soulever un autre problème que je rencontre avec ce flux. Il contient des balises description qui incluent parfois des caractères spéciaux. Le contenu est dans ce cas entouré par des <![CDATA[ et il n'apparait pas.

A quoi cela est-il dû?
 
cuirwebmaster
webmasterlamogere
WRInaute accro
WRInaute accro

Inscrit le: 17 Déc 2006
Messages: 1604
Localisation: urlrewriting.fr

URL permanente de ce messagePosté le : Jeu Mai 15, 2008 11:19    Sujet du message: Requête sur un flux xml?

<![CDATA[ .. ]]> permet de mettre du texte brut à l'intérieur sans avoir à le modifier avec des &eacute; par exemple
 
webmasterlamogere Visiter le site web du posteur
cuirwebmaster
Nouveau WRInaute

Inscrit le: 04 Mai 2007
Messages: 28

URL permanente de ce messagePosté le : Jeu Mai 15, 2008 11:55    Sujet du message: Requête sur un flux xml?

webmasterlamogere a écrit:
<![CDATA[ .. ]]> permet de mettre du texte brut à l'intérieur sans avoir à le modifier avec des &eacute; par exemple


Merci webmasterlamogere Je vais abuser encore un peu (au point ou j'en suis...) comment faire pour que ce texte soit affiché? Est-ce une question d'encodage des caractères? Car quand je parse le flux, il n'y a que les descriptions sans CDATA qui s'affiche?

Merci d'avance Wink
 
cuirwebmaster
webmasterlamogere
WRInaute accro
WRInaute accro

Inscrit le: 17 Déc 2006
Messages: 1604
Localisation: urlrewriting.fr

URL permanente de ce messagePosté le : Jeu Mai 15, 2008 12:03    Sujet du message: Requête sur un flux xml?

utilise un parser xml : il récupère que le texte et s'occupe de mettre le texte au bon format.
http://fr.php.net/xml
 
webmasterlamogere Visiter le site web du posteur
cuirwebmaster
Nouveau WRInaute

Inscrit le: 04 Mai 2007
Messages: 28

URL permanente de ce messagePosté le : Jeu Mai 15, 2008 12:08    Sujet du message: Requête sur un flux xml?

webmasterlamogere a écrit:
utilise un parser xml : il récupère que le texte et s'occupe de mettre le texte au bon format.
http://fr.php.net/xml


Ok merci!
 
cuirwebmaster
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

Autres sujets de discussion :

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort