lire fichier XML en javascript


Pierrot25
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 446
Inscription: 17 Mar 2005

lire fichier XML en javascript

Message le Ven Fév 09, 2007 17:20

Bonjour a tous

J'arrive pas a trouver ce que je veux sur internet alors je vous demande votre aide.

Voila, en admettant que j'aie un flux xml de la sorte :

Code: Tout sélectionner
<addresses>
    <address>
        <id>17800630.00</id>
        <description>E G Dodson &amp; Son Ltd 427 High Road London</description>
    </address>
    <address>
        <id>17800638.00</id>
        <description>Moloneys 429 High Road London NW10</description>
    </address>
    <address>
        <id>17800637.00</id>
        <description>New Golden 425 High Road London</description>
    </address>
[...]
</adresses>


Comment, EN JAVASCRIPT, je peux boucler sur les nœuds "address" et accéder à l'id et à la description ? J'ai trouvé plusieurs fonctions (getElementsByTagName("addresses"), firstChild.data, firstChild.text, firstChild.nodeValue, etc) sur internet mais je n'y arrive pas a faire ce que je veux...
Merci à celui qui pourra me mettre sur la bonne voie !


cleden
WRInaute passionné
WRInaute passionné
 
Messages: 1194
Inscription: 6 Jan 2003

Message le Sam Fév 10, 2007 11:34

Salut,

J'ai fait un petit script, je ne sais pas si c'est exactement ce que tu cherches. Quelques lignes de JS suffisent à afficher le flux A CONDITION qu'un parser php existe quelque part: http://www.cap-sizun.com/cap,flux-rss.html

Et pour être plus précis, le parser javascript rss-js.php:
Code: Tout sélectionner
<?
   $flux = $_GET['flux'];
   $nb_items = $_GET['nb_items'];
   $file = fopen($flux,"r");
   if ($file) {
      while (!feof($file)) $raw .= fread($file,32000);
      fclose( $file );
      if(eregi("<item>(.*)</item>",$raw,$rawitems)){
         $items = explode("<item>", $rawitems[0]);
         $nb = count($items);
         $maximum = (($nb-1) < $nb_items) ? ($nb-1) : $nb_items;
         ob_start();
echo "document.write('<ul>');"."\n";
         for ($i=0;$i<$maximum;$i++) {
         eregi("<title>(.*)</title>",$items[$i+1], $title);
       if ($_GET['desc']=="y"){eregi("<description>(.*)</description>",$items[$i+1], $descript);}
         eregi("<link>(.*)</link>",$items[$i+1], $link);
         eregi("<rm>(.*)</rm>",$items[$i+1], $rm);
         eregi("<enclosure url=\"(.*)\" length",$items[$i+1], $enclosure);
echo "document.write('<li><a href=\"".$link[1]."\">".addslashes($title[1])."</a></li>')";
      if  ($_GET['desc']=="y" && strlen($descript[1])>150){echo "document.write('<p>".addslashes(substr($descript[1], 0, 150))." <a href=\"".$link[1]."\">[...]</a></p>');"."\n";}
      elseif (strlen($descript[1])>5){echo "document.write('<p>".addslashes(substr($descript[1], 0, 150))."</p>');"."\n";}
      if  ($_GET['photos']=="y"){
      echo "document.write('<p><img src=\"".$enclosure[1]."\" /></p>');"."\n";
      }
      }
echo "document.write('</ul>');";
         $contenuCache = ob_get_contents();
         ob_end_flush();
      }
   }
?>


Loïc


Pierrot25
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 446
Inscription: 17 Mar 2005

Message le Sam Fév 10, 2007 12:46

merci Loic mais ce que tu me donnes c'est du code PHP... je trouve pas le javascript

en fait j'en ai besoin pourpour afficher dans une page HTML (donc sans la recharger) des infos venant d'un flux XML generé par un script AJAX...

du coup, j'ai besoin de javascript pur...


Pierrot25
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 446
Inscription: 17 Mar 2005

Message le Dim Fév 11, 2007 15:35

alors personne ne peut m'aider ? :? :(


ecocentric
WRInaute accro
WRInaute accro
 
Messages: 3602
Inscription: 10 Fév 2004

Message le Dim Fév 11, 2007 20:39

regarde pê dans les frameworks Ajax ce qu'ils utilisent pour la lecture XML.


Pierrot25
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 446
Inscription: 17 Mar 2005

Message le Lun Fév 12, 2007 10:34

oui ben en fait c'est ce que je voulais eviter de faire parce que les frameworks sont difficiles a dechiffrer et comme je veux un truc relatviment simple... je pensais que quelqu'un avait deja eu ce pb. :roll:


Pierrot25
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 446
Inscription: 17 Mar 2005

Message le Lun Fév 12, 2007 16:52

en fait j'ai peur que le probleme (comme la verite) soit ailleurs !

j'ai donc toujours mon fichier XML :

Code: Tout sélectionner
<addresses>
    <address>
        <id>17800630.00</id>
        <description>E G Dodson &amp; Son Ltd 427 High Road London NW10</description>
    </address>
    <address>
        <id>17800638.00</id>
        <description>Moloneys 429 High Road London NW10</description>
    </address>
    <address>
        <id>17800637.00</id>
        <description>New Golden Duck Restaurant 425 High Road London NW10</description>
    </address>
    <address>
        <id>17800640.00</id>
        <description>Schiavi Pole Brett Ltd 409 High Road London NW10</description>
    </address>
<addresses>


j'ai trouve des exemples javascript sur d'autres sites et voila le resultat
si je fais
Code: Tout sélectionner
docXML.childNodes.length

j'obtiens 1 avec FF et 0 sous IE (alors que dans l'exemple que j'ai je devrais visiblement trouver une valeur de 4 puisque j'ai 4 noeuds address )

autre PB, si je fais

Code: Tout sélectionner
docXML.childNodes(2).childNodes.length

FF et IE me disent : docXML.childNodes() is not a function !

je comprends pas, je l'invente pas, je l'ai vu sur plusieurs sites! pourquoi ca marche pas chez moi ?!

merci de m'aider, j'en ai marre de tourner en rond

nikox
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 4
Inscription: 4 Mai 2005

Message le Jeu Juin 14, 2007 13:47

Pierrot25 a écrit:
Code: Tout sélectionner
docXML.childNodes(2).childNodes.length

FF et IE me disent : docXML.childNodes() is not a function !

je comprends pas, je l'invente pas, je l'ai vu sur plusieurs sites! pourquoi ca marche pas chez moi ?!


je pense que c pas
Code: Tout sélectionner
docXML.childNodes(2).childNodes.length


mais
Code: Tout sélectionner
docXML.childNodes[2].childNodes.length


childNodes est en fait un tableau des éléments enfant que tu peux trouver en utilisant des indices numériques.


Pierrot25
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 446
Inscription: 17 Mar 2005

Message le Jeu Juin 14, 2007 13:51

merci. en fait je pense avoir essaye a l'époque, j'avais fini par m'en sortir mais j'ai passe qq heures sur ce problème!!!

Anouar86
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 1
Inscription: 16 Avr 2010

Re: lire fichier XML en javascript

Message le Ven Avr 16, 2010 16:22

Salut

SVP j'ai le même problème que vous et je n'arrive pas à m'en sortir ( Lecture d'un fichier XML avec javascript )

Est ce que vous pouvez me fournir la solution que t'as trouvée ??

Un grand merci d'avance


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité