[xml+PHP] parser xml avec php, petit pb: ça n'affiche que des chiffres

parser xml avec php, petit pb: ça n'affiche que des chiffres [xml+PHP] - PHP - Programmation

Marsh Posté le 24-10-2004 à 20:21:10    

bonsoir, je me suis mis l'idée d'utiliser XML pour mon site.
et donc par exemple pour gerer les donner de ma shoutbox
j'ai donc ecrit un petit fichier xml de test:

Code :
  1. <?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
  2. <!DOCTYPE shoutbox[
  3. <!ELEMENT shoutbox (message)* >
  4. <!ELEMENT message (nom,date,texte)+ >
  5. <!ELEMENT nom (#PCDATA)>
  6. <!ELEMENT date (#PCDATA)>
  7. <!ELEMENT texte (#PCDATA)>
  8. ]>
  9. <shoutbox>
  10. <message>
  11. <nom>pierrot</nom>
  12. <date>15/04/83</date>
  13. <texte>ba voila c le premier texte maintenant va falloir le lire</texte>
  14. </message>
  15. <message>
  16. <nom>pierrot la lune</nom>
  17. <date>15/04/83</date>
  18. <texte>ba voila c le deuxieme texte maintenant va falloir le lire</texte>
  19. </message>
  20. </shoutbox>


 
qui passe bien sous mozilla :)
 
alors je le mouline avec ce script
 

Code :
  1. <?php
  2. class XMLParser{
  3.  var $idParser;
  4.  function XMLParser($filename){
  5.   $this->idParser = xml_parser_create();
  6.   //xml_parse_into_struct($this->idParser,implode(file($filename)),&$struct,&$index);
  7.   xml_set_object($this->idParser,&$this);
  8.   xml_set_element_handler($this->idParser, "beginBalise", "endBalise" );
  9.   xml_set_character_data_handler($this->idParser,"texte" );
  10.   $fp = fopen($filename, "r" ) or die("Fichier introuvable. L'analyse a ete suspendue" );
  11.   while ($fdata = fread($fp, 2048)){
  12.    xml_parse($this->idParser, $fdata, feof($fp)) or die(
  13.    sprintf("Erreur XML : %s à la ligne %d\n",
  14.    xml_error_string(xml_get_error_code($this->idParser)),
  15.    xml_get_current_line_number($this->idParser))
  16.    );
  17.   }
  18.   xml_parser_free($this->idParser);
  19.   /*echo "<pre>";
  20.   print_r($struct);
  21.   print_r($index);
  22.   echo"</pre>";*/
  23.  }
  24.  function beginBalise($parser, $name, $attrs){
  25.   print("debut"+$name+"<br>" );
  26.  }
  27.  function endBalise($parser, $name){
  28.   print("fin"+$name+"<br>" );
  29.  }
  30.  function texte($parser, $data_text){
  31.   print("milieu"+$data_text+"<br>" );
  32.  }
  33. }
  34. ?>


 

Code :
  1. <?php
  2. include("library/xmlparser.php" );
  3. new XMLParser("../xml/shoutbox.xml" );
  4. ?>


 
c pas grandiose comme implementation mais c du test pour voir comment tourne le parser xml de php
 
j'execute le script et j'optient..... ça:

Code :
  1. 0000000000015000000000000000000150000000000


 
donc ça me fait un peu drole la
 
si quelqu'un pouvais me dire ce qui ce passe ce serai super sympa. merci d'avance


Message édité par Lunatik3 le 24-10-2004 à 21:20:22
Reply

Marsh Posté le 24-10-2004 à 20:21:10   

Reply

Marsh Posté le 24-10-2004 à 22:03:43    

j'ai fini par trouver:  
 

Code :
  1. print("debut $name <br>" );


 
a la place de ça:

Code :
  1. print("debut"+$name+"<br>" );


et ça marche.
 
j'avais oublier que c les . pour la concatenation.


Message édité par Lunatik3 le 24-10-2004 à 22:04:25
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed