2017-04-12 7 views
1

Mon xml ressemble à ceci, je suis capable de récupérer les éléments et d'obtenir les données de nœuds comme <title>, <description>. Comment obtenir les valeurs de <media:title> et <media:credit>, <media:thumbnail>Lecture de xml en utilisant jquery ou javascript

Voici comment suis en mesure d'obtenir les données

 var xmlparser = new DOMParser(); 
     var xmlData = xmlparser.parseFromString(data.text(), "text/xml"); 
     var items = xmlData.getElementsByTagName('item'); 
     for(var i = 0; i < items.length; i++){ 
      var title = items[i].getElementsByTagName("title")[0].childNodes[0].nodeValue; 
      var desc = items[i].getElementsByTagName("description")[0].childNodes[0].nodeValue; 
     } 
<pre xmlns:content="http://purl.org/rss/1.0/modules/content/" 
        xmlns:dcterms="http://purl.org/dc/terms/" 
        xmlns:media="http://search.yahoo.com/mrss/" version="2.0"> 
<Channel> 
    <item> 
    <title>List of records</title> 
    <description>reading xml</description. 
    <media:title xmlns:media="http://search.yahoo.com/mrss/"> 
    SinkorSwim Trailer 
    </media:title> 
    <title>Sink or Swim - Trailer</title> 
    <description>Jon Bowermaster's documentary</description>   
    <media:description xmlns:media="http://search.yahoo.com/mrss/"> 
    Jon Bowermaster's documentary on a learn-to-swim camp 
    </media:description> 
    <media:credit xmlns:media="http://search.yahoo.com/mrss/" role="Director" 
          scheme="urn:ebu"> 
    Jon Bowermaster 
    </media:credit> 
    <media:status xmlns:media="http://search.yahoo.com/mrss/" state="active"/> 
    <media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" 
    type="landscape" url="http://snagfilms-video.jpg"/> 
    <media:player xmlns:media="http://search.yahoo.com/mrss/" height="323" 
    url="http://embed.snagfilms.com/embed/player?filmId=00000158-b20c-d8f9- 
    affd-b32ce8700000" width="500"/> 
    </item> 
    <item></item> 
    <item></item> 
</channel> 
</pre> 

Répondre

0

Le media dans media:title désigne un préfixe d'espace de noms XML. Le préfixe d'espace de noms est seulement un raccourci pour l'espace de noms. L'espace de noms doit être défini quelque part dans le document avec un attribut xmlns:media. Ensuite, vous pouvez utiliser la fonction d'espace de noms courant getElementsByTagNameNS() pour interroger l'élément title:

console.log(xml.getElementsByTagNameNS('xmlns:media="http://search.yahoo.com/mrss/"', 'title')); 

premier paramètre, vous devez passer le nom d'espace de noms et non le préfixe.