Partage
  • Partager sur Facebook
  • Partager sur Twitter

Parcourir XML

Sujet résolu
Anonyme
    16 octobre 2011 à 22:41:33

    Bonjour,

    J'utilise l'API LastFM pour créer des classement en tout genre sur la musique.
    Voici un exemple de fichier XML que l'API renvoie :
    <lfm status="ok">
    <tracks page="1" perPage="50" totalPages="20" total="1000">
    	<track>
    		<name>Rolling In The Deep</name>
    		<duration>230</duration>
    		<playcount>99888</playcount>
    		<listeners>41671</listeners>
    		<mbid/>
    		<url>
    		http://www.last.fm/music/Adele/_/Rolling+In+The+Deep
    		</url>
    		<streamable fulltrack="0">0</streamable>
    		<artist>
    			<name>Adele</name>
    			<mbid>b0335a95-8a12-4c71-8149-5054ec847d04</mbid>
    			<url>http://www.last.fm/music/Adele</url>
    		</artist>
    		<image size="small">http://userserve-ak.last.fm/serve/34s/55125087.png</image>
    		<image size="medium">http://userserve-ak.last.fm/serve/64s/55125087.png</image>
    		<image size="large">http://userserve-ak.last.fm/serve/126/55125087.png</image>
    		<image size="extralarge">
    		http://userserve-ak.last.fm/serve/300x300/55125087.png
    		</image>
    	</track>
    	<track>
    		<name>Someone Like You</name>
    		<duration>284</duration>
    		<playcount>110130</playcount>
    		<listeners>34489</listeners>
    		<mbid/>
    		<url>http://www.last.fm/music/Adele/_/Someone+Like+You</url>
    		<streamable fulltrack="0">0</streamable>
    		<artist>
    			<name>Adele</name>
    			<mbid>b0335a95-8a12-4c71-8149-5054ec847d04</mbid>
    			<url>http://www.last.fm/music/Adele</url>
    		</artist>
    		<image size="small">http://userserve-ak.last.fm/serve/34s/55125087.png</image>
    		<image size="medium">http://userserve-ak.last.fm/serve/64s/55125087.png</image>
    		<image size="large">http://userserve-ak.last.fm/serve/126/55125087.png</image>
    		<image size="extralarge">
    		http://userserve-ak.last.fm/serve/300x300/55125087.png
    		</image>
    	</track>
    </tracks>
    </lfm>
    

    Mon problème est que lorsque je veux récupérer le nom de la chanson et de l'artiste séparément, je n'y arrive pas.
    Avec data.getElementsByTagName('name')[i].firstChild.nodeValue je récupére les 2 ensembles car ils portent le même nom.
    Comment puis-je récupérer les valeurs séparément ?
    C'est la première fois que je manipule du XML.

    Merci à ceux qui pourront m'aider :)
    • Partager sur Facebook
    • Partager sur Twitter
      16 octobre 2011 à 23:06:07

      var tracks = data.getElementsByTagName('track');
      for(var i=0,l=tracks.length;i<l;i++) {
          var name = tracks[i].getElementsByTagName('name')[0].firstChild.data;
          var artist = tracks[i].getElementsByTagName('artist')[0].getElementsByTagName('name')[0].firstChild.data;
          alert(name+' : '+artist);
      }
      


      ?
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        21 octobre 2011 à 17:29:23

        Nickel ! Je pensais pas qu'on pouvait imbriquer les getElementsByTagName('X') les uns dans les autres.
        Merci Golmote :)
        • Partager sur Facebook
        • Partager sur Twitter

        Parcourir XML

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown