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

  FORUM HardWare.fr
  Programmation
  PHP

  url dans fichier xml découpé en 3 partie, pourquoi ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

url dans fichier xml découpé en 3 partie, pourquoi ?

n°849711
Nickysama
Posté le 14-09-2004 à 10:26:02  profilanswer
 

Bonjour, en m'inspirant du tutorial trouvé sur phpfrance j'essaie de créer moi même mon propre parser.  
Seulement sur les attributs du type url avec parametre (pas les autres attributs qui fonctionne tres bien) j'ai un probleme. L'url se retrouve decoupée en 3 morceaux. (je ne comprend pas pourquoi)
 
Voici l'url telle qu'elle ecrite dans le fichier xml:  


Et elle se retrouve découpé en 3 moceaux comme ci le parser la lisait en 3 fois ou comme ci c'etais 3 elements différent:  

Citation :

http://www.nimportequoi.com/index.php?area=news  
&  
id=109460132630907800


 
Pouvez m'expliquer pourquoi elle se retrouve découpée en 3 ? Et eventuellement le moyen de résoudre ce probleme, merci.
 
Voici un exemple de mon probleme que j'ai simplifié et qui fonctionne si vous voulez le tester.  
 
la page contenant le parser :  
 

Code :
  1. <html>
  2. <?php
  3. function ouvre ($parser, $name, $attrs){
  4. global $DANS_LINK ;
  5. global $link ;
  6. if ($name == "LINK" ){
  7. $DANS_LINK = TRUE ;
  8. }
  9. }
  10. function ferme ($parser, $name){
  11. global $DANS_LINK ;
  12. global $link ;
  13. if ($name == "LINK" ){
  14. print("<b>".$link."</b><br>\n" );
  15. $DANS_LINK = FALSE ;
  16. }
  17. }
  18. function texte ($parser, $data_text){
  19. global $DANS_ITEM ;
  20. global $DANS_LINK ;
  21. global $link ;
  22. if ($DANS_LINK) {
  23. echo( $data_text );
  24. print (($link)."<br>\n" );
  25. }
  26. }
  27. function default_f(){
  28. return TRUE;
  29. }
  30. $xml_parser = xml_parser_create();
  31. xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
  32. xml_set_element_handler($xml_parser, "ouvre", "ferme" );
  33. xml_set_default_handler($xml_parser,"default_f" );
  34. xml_set_character_data_handler($xml_parser, "texte" );
  35. if(!($fp = @fopen("rss2.xml", "r" ))){
  36. die("<B>Impossible de Trouver le fichier. Fin d'execution</B>" );
  37. }
  38. while ($data = fread($fp, 4096)){
  39. if(!xml_parse($xml_parser, $data, feof($fp))){
  40. die(sprintf("Erreur XML : %s a la ligne %d",
  41. xml_error_string(xml_get_error_code($xml_parser)),
  42. xml_get_current_line_number($xml_parser)));
  43. }
  44. }
  45. xml_parser_free($xml_parser);
  46. ?>
  47. </html>

 
 
 
le fichier Xml rss2.xml
 

Code :
  1. <?xml version="1.0" ?>
  2. <infos>
  3. <item>
  4. <link>http://www.nimportequoi.com/index.php?area=news&amp;id=109460132630907800</link>
  5. </item>
  6. <item>
  7. <link>http://www.nimportequoi.com/index.php?area=news&amp;id=109458649790125600</link>
  8. </item>
  9. <item>
  10. <link>http://www.nimportequoi.com/index.php?area=news&amp;id=109416553474586500</link>
  11. </item>
  12. <item>
  13. <link>http://www.nimportequoi.com/index.php?area=news&amp;id=109400056623116000</link>
  14. </item>
  15. </infos>

 
 
 
Merci de vos explications. Je ne veux pas utiliser la méthode DOM car ce n'est que de la lecture donc SAX s'impose. Pour moi c'est un peu comme une initiation au xml j'essairai DOM plustard quand je maitriserai deja la méthode SAX.

mood
Publicité
Posté le 14-09-2004 à 10:26:02  profilanswer
 

n°864207
paquerette
Flower Power...
Posté le 04-10-2004 à 14:48:20  profilanswer
 

parce que & est un caractère spéciale...
dans les données xml tu doit remplacer & par &amp;
 
D'autant que &amp; est un bon séparator de variable (et je crois que c'est le seul qui est valid html 4 strict)
 
moi j'utilise cette petit fonction pour remplir les données de mon xml :
 

Code :
  1. function replaceXmlEntities($string)
  2.   {
  3.     return strtr( $string, array(
  4.                                   '&'  => '&amp;',
  5.                                   '>'  => '&gt;',
  6.                                   '<'  => '&lt;',
  7.                                   '"'  => '&quot;',
  8.                                   '\'' => '&apos;' ));
  9.   }

n°864209
paquerette
Flower Power...
Posté le 04-10-2004 à 14:50:25  profilanswer
 

cela dit, j'ai le meme souci... avec les &...;
 
dans un champ, j'ai ca comme donnée :
<data>c&apos;est la vie</data>
 
et il me découpe ca en trois aussi :
1->c
2->'
3->est la vie
 
on m'a dit qu'il fallait passer une option au parser pour pas qu'il fasse ca, mais j'ai pas encore trouver (c pourquoi je suis sur le forum ;)

n°864213
paquerette
Flower Power...
Posté le 04-10-2004 à 14:58:28  profilanswer
 

arf, j'avais pas vu tes données xml avec le &amp;
 
Sinon, ca marche correctement pour moi quand c'est une apostrophe simple... donc je crois que je vais pas m'emerder... je vais remplacer &amp; par ' et ca ira bien...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  url dans fichier xml découpé en 3 partie, pourquoi ?

 

Sujets relatifs
[shell]boucle for imbriquée pour recopie de fichier[PHP] Rechercher des balises dans un fichier [RESOLU]
Uploader un fichier sur un ftp par formulaire HTML ?relire un fichier FileReader BufferedReader
[divers] Supprimer les retours à ligne présents dans fichier texteConnaitre la position dans un fichier d'un élément ou attribut DOM
[PHP] afficher le contenu d'un fichier texteRecuperer le contenu d'un fichier en variable
[PHP] Ecrire un fichier excel avec PHP depuis MYSQLconversion fichier jpeg vers ppm
Plus de sujets relatifs à : url dans fichier xml découpé en 3 partie, pourquoi ?


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