Requête sur un flux xml?
11 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
- cuirwebmaster
- Nouveau WRInaute
- Messages: 29
- Inscription: Ven Mai 04, 2007 4:26
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!
)
Pour afficher ce flux j'utilise ceci
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
j'ai un flux xml qui ressemble à ça (Les connaisseurs reconnaitront l'origine!
- Code: Tout sélectionner
<?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: Tout sélectionner
<?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
- audit.referencement
- WRInaute occasionnel

- Messages: 123
- Inscription: Sam Fév 16, 2008 17:14
Lol, j'ai reconnu l'origine, effectivement.
Aucun problème pour ce que tu souhaites faire, une simple condition suffit.
Aucun problème pour ce que tu souhaites faire, une simple condition suffit.
- cuirwebmaster
- Nouveau WRInaute
- Messages: 29
- Inscription: Ven Mai 04, 2007 4:26
Je pensais avoir compris le principe des conditions, cependant il n'en est rien
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 !!!
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 !!!
-

webmasterlamogere - WRInaute accro

- Messages: 1874
- Inscription: Dim Déc 17, 2006 21:08
tu peut ajouter le test autour des "echo" :
- Code: Tout sélectionner
<?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";
}
}
?>
-

bproductiv - WRInaute accro

- Messages: 2770
- Inscription: Lun Déc 27, 2004 16:29
il y a des classe pour manipuler le xml qui existent et open source
- cuirwebmaster
- Nouveau WRInaute
- Messages: 29
- Inscription: Ven Mai 04, 2007 4:26
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
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 <
webmasterlamogere - WRInaute accro

- Messages: 1874
- Inscription: Dim Déc 17, 2006 21:08
<![CDATA[ .. ]]> permet de mettre du texte brut à l'intérieur sans avoir à le modifier avec des é par exemple
- cuirwebmaster
- Nouveau WRInaute
- Messages: 29
- Inscription: Ven Mai 04, 2007 4:26
webmasterlamogere a écrit:<![CDATA[ .. ]]> permet de mettre du texte brut à l'intérieur sans avoir à le modifier avec des é 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
-

webmasterlamogere - WRInaute accro

- Messages: 1874
- Inscription: Dim Déc 17, 2006 21:08
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
http://fr.php.net/xml
- cuirwebmaster
- Nouveau WRInaute
- Messages: 29
- Inscription: Ven Mai 04, 2007 4:26
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!
11 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Un (RSS) pour tous (les blogs officiels de Google)
- Google Enterprise a son blog
- Intégrer facilement un flux RSS externe
- Annuaire WRI : intégration des flux XML des inscrits
- Utiliser Actifpub pour l'intégration d'un flux RSS externe sur son site
- Le blog de Google Analytics
- Le blog officiel de Google Research
- Le blog officiel de Google au Japon
- Le blog officiel de Google Custom Search (CSE)
- Intégrer un flux RSS sur son site
Consultez la description détaillée des produits ou services de Google suivants : API Google Checkout
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

le forum