Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1573 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  Afficher certaines balises xml en fonction de leurs attributs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Afficher certaines balises xml en fonction de leurs attributs

n°1839402
aikiman
Posté le 17-01-2009 à 14:46:58  profilanswer
 

Bonjour à tous,
j'espère que vous pourrez m'aider car je n'ai rien trouvé la dessus sur internet ou alors j'ai pas le vocabulaire adéquat.
Voila je fais un site de carnets de voyages. J'aimerais créer un xml ou je liste tous mes voyages et ensuite en fonction des pages du site demandé afficher certains carnets en fonctions des pays...C'est à dire sur la page principale afficher le dernier carnet et sur la page japon afficher tous les carnets relatifs au japon. J'ai essayé plusieurs choses avec le code ci dessous mais ca bug...Je ne m'y connais pas trop en php aussi...Donc voila si vous avez compris mon problème et que vous savez comment y répondre, je vous remercie d'avance pour le temps passé à me répondre!
 
Code pour afficher le xml dans ma page php :

Code :
  1. <?php
  2. $fichier_xml = "liste_carnets.xml"; # Placez ici l'adresse du flux
  3. $nombre_limite = 2; # Nombre maximum d'éléments à afficher
  4. # Affichage du Flux
  5. $raw = file_get_contents($fichier_xml);
  6. if ($raw) {
  7.     if(eregi("<item>(.*)</item>",$raw,$rawitems)){
  8.         $items = explode("<item>", $rawitems[0]);
  9.         $nb = count($items);
  10.         $maximum = (($nb-1) < $nombre_limite) ? ($nb-1) : $nombre_limite;
  11.         for ($i=0;$i<$maximum;$i++) {
  12.             eregi("<pay1>(.*)</pays>",$items[$i+1], $pays);
  13.   eregi("<title>(.*)</title>",$items[$i+1], $title);
  14.             eregi("<image>(.*)</image>",$items[$i+1], $image);
  15.   eregi("<datesvoyage>(.*)</datesvoyage>",$items[$i+1], $datesvoyage);
  16.   eregi("<datecarnet>(.*)</datecarnet>",$items[$i+1], $datecarnet);
  17.   eregi("<description>(.*)</description>",$items[$i+1], $description);
  18.   eregi("<lien>(.*)</lien>",$items[$i+1], $lien);
  19.             echo "<h5>
  20. <strong>Pays : </strong>".$pays[1]."<br />
  21. <strong>Carnet : </strong><a href=\"".$lien[1]."\">".$title[1]."</a><br />
  22. <strong>Dates du voyage : </strong>".$datesvoyage[1]."</h5>
  23. <div id=\"listederniercarnet\"><h5>".$description[1]."</h5>
  24. </div>";
  25.             }
  26.         }
  27.     }
  28. ?>


 
Exemple du xml  

Code :
  1. <?xml version="1.0" encoding="utf-8"?>
  2.  <item class="Japon">
  3.      <Pays>Japon</Pays>
  4.   <title>Voyage au japon</title>
  5.   <image><img src="Data/images/Japon.png" width="30" height="30" /></image>
  6.   <datesvoyage>du 24.07.08 au 04.09.08</datesvoyage>
  7.   <datecarnet>20.01.09</datecarnet>
  8.   <description>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam, justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam ante ac quam. Maecenas urna purus, fermentum id, molestie in, commodo porttitor, felis.</description>
  9.   <link></link>
  10.   <pubDate>Sun, 11 Jan 2009 12:00:00 GMT</pubDate>
  11.         </item>
  12.  <item class="Ecosse">
  13.      <Pays>Ecosse</Pays>
  14.   <title>Voyage en ecosse</title>
  15.   <image><img src="Data/images/Ecosse.png" width="30" height="30" /></image>
  16.   <datesvoyage>du 24.07.08 au 04.09.08</datesvoyage>
  17.   <datecarnet>20.01.09</datecarnet>
  18.   <description>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam, justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam ante ac quam. Maecenas urna purus, fermentum id, molestie in, commodo porttitor, felis.</description>
  19.   <link></link>
  20.   <pubDate>Sun, 11 Jan 2009 12:00:00 GMT</pubDate>
  21.         </item>

mood
Publicité
Posté le 17-01-2009 à 14:46:58  profilanswer
 

n°1839411
masklinn
í dag viðrar vel til loftárása
Posté le 17-01-2009 à 15:07:02  profilanswer
 

Ton "XML" c'est n'importe quoi, c'est même pas du XML ça ressemble à rien, et faut être complètement ravagé pour lire des fichiers XML à coup d'ereg [:delarue5]

 

SimpleXML c'est pas fait pour les chiens [:pingouino]


Message édité par masklinn le 17-01-2009 à 15:07:40

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1839416
aikiman
Posté le 17-01-2009 à 15:09:31  profilanswer
 

Ha...dsl j'ai repris ce code php sur internet et qui jusqu'à présent fonctionnait très bien...Il y a vraiment pas moyen d'utiliser un xml pour comme ca ? c'est pas pour faire un flux rss hein...

n°1839417
masklinn
í dag viðrar vel til loftárása
Posté le 17-01-2009 à 15:11:25  profilanswer
 

aikiman a écrit :

Il y a vraiment pas moyen d'utiliser un xml pour comme ca ?


Comme je te l'ai déjà dit, ton machin n'est pas du XML. Et le code PHP qui va avec, c'est n'importe quoi.

Message cité 1 fois
Message édité par masklinn le 17-01-2009 à 15:11:43

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1839418
Profil sup​primé
Posté le 17-01-2009 à 15:14:01  answer
 


c-à-d ?

aikiman a écrit :

Code :
  1. eregi("<pay1>(.*)</pays>",$items[$i+1], $pays);



Ce ne serait pas plutôt :

Code :
  1. eregi("<pays>(.*)</pays>",$items[$i+1], $pays);


("s" et pas "1" )
 
Et +1 avec Masklinn, eregi c'est pas fait pour le XML  [:mlc2]

n°1839419
Profil sup​primé
Posté le 17-01-2009 à 15:14:41  answer
 

masklinn a écrit :


Comme je te l'ai déjà dit, ton machin n'est pas du XML. Et le code PHP qui va avec, c'est n'importe quoi.


pourquoi ?

n°1839422
masklinn
í dag viðrar vel til loftárása
Posté le 17-01-2009 à 15:17:08  profilanswer
 


Parce qu'un document XML ça a un élément racine, son truc n'a pas d'élément racine (il y a 2 éléments "item" sans conteneur)


Message édité par masklinn le 17-01-2009 à 15:17:41

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1839423
Profil sup​primé
Posté le 17-01-2009 à 15:18:38  answer
 

ah ok...

n°1839425
aikiman
Posté le 17-01-2009 à 15:20:13  profilanswer
 

pour pays oui j'avais corrigé c'est en faisant des tests que j'avais changé ca...sinon si il faut que je restructure mon xml je le ferais mais par contre pour simplexml, je vous ai dit que j'y connais rien en php...vous pourriez me donner un script permettant de gérer le nombre d'item affiché et dont on puisse changer la class si ca prends pas trop de temps?

n°1839426
aikiman
Posté le 17-01-2009 à 15:23:33  profilanswer
 

Il y a juste à rajouter un conteneur et ca devient un xml valide avec une racine?

mood
Publicité
Posté le 17-01-2009 à 15:23:33  profilanswer
 

n°1839500
aikiman
Posté le 17-01-2009 à 19:11:59  profilanswer
 

et comme ca c'est pas mieux déjà le xml? Là il y a bien une racine, un CDATA qui permet de voir les accents (même si ca sert pas à ca à la base ca à l'air de le permettre)...
 

Code :
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <rss version="2.0">
  3.    
  4. <channel>
  5.  
  6.         <title>Les derniers carnets d'Enoki</title>
  7.         <link></link>
  8.         <description></description>
  9.  <![CDATA[
  10.  <item>
  11.      <Pays>Japon</Pays>
  12.   <title>Voyage au japon</title>
  13.   <image><img src="Data/images/Japon.png" width="30" height="30" /></image>
  14.   <datesvoyage>du 24.07.08 au 04.09.08</datesvoyage>
  15.   <datecarnet>20.01.09</datecarnet>
  16.   <description>J'ai été surpris de voir que les accents étaient acceptés</description>
  17.   <link></link>
  18.   <pubDate>Sun, 11 Jan 2009 12:00:00 GMT</pubDate>
  19.         </item>
  20.  <item>
  21.      <Pays>Ecosse</Pays>
  22.   <title>Voyage en ecosse</title>
  23.   <image><img src="Data/images/Ecosse.png" width="30" height="30" /></image>
  24.   <datesvoyage>du 24.07.08 au 04.09.08</datesvoyage>
  25.   <datecarnet>20.01.09</datecarnet>
  26.   <description>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam, justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam ante ac quam. Maecenas urna purus, fermentum id, molestie in, commodo porttitor, felis.</description>
  27.   <link></link>
  28.   <pubDate>Sun, 11 Jan 2009 12:00:00 GMT</pubDate>
  29.         </item>
  30.   !"]]>
  31. </channel>


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  Afficher certaines balises xml en fonction de leurs attributs

 

Sujets relatifs
[HTML] Pblm fonction "Z Index"retour de fonction par référence et chainage d'opération
Problèmes avec la fonction mail (mails HTML)Afficher Résultat sur plusieurs pages
probleme afficher imageLister les différents champs d'un parametre d'une fonction. Possible ?
SQL / PHP Afficher toutes les colonnes d'une tableSoucis avec preg_replace et balises
fonction prédéfinie de décalage en xilinxCréer une page de dispatch en php en fonction de l'url saisie
Plus de sujets relatifs à : Afficher certaines balises xml en fonction de leurs attributs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR