2012-02-21 4 views
0

次のxml webserviceを使用します。私はちょうどこのXML &はそれから性別を取得解析するJavaスクリプトまたはjqueryを使用してxml webserviceレスポンスを解析する方法

<metadata><artist-list offset="0" count="3418"><artist ext:score="100" type="Person" id="f27ec8db-af05-4f36-916e-3d57f91ecf5e"><name>Michael Jackson</name><sort-name>Jackson, Michael</sort-name><gender>male</gender><country>US</country> 

:以下のようにされている書式 www.musicbrainz.org/ws/2/artist/?query=artist:michael jackson

。 次のコードを使用してxmlを解析しました。 私はアーティストのext属性を取得しますが、動作しません。

$.ajax({ 
     type: 'GET', 
     url: 'http://www.musicbrainz.org/ws/2/artist/?query=artist:michael jackson', 
     dataType: 'xml', 
     success: function(xml){ 
      // console.log(xml); 
      $(xml).find('artist-list').each(function(){ 
      $(this).find('artist').each(function(){ 
          var ext = $(this).attr('ext'); 
          alert(ext); 
        }); 
      }); 
    } 

});

誰かが私にjavascriptまたはjqueryを使用してxmlを解析する例を提案できます。

+0

は、以下の私の答えを見ます。どんな反応も素晴らしいだろう! – papaiatis

答えて

3
$.ajax({ 
    type: 'GET', 
    url: 'http://www.musicbrainz.org/ws/2/artist/?query=artist:michael jackson', 
    dataType: 'xml', 
    success: function(xml){ 
     $("artist", xml).each(function(){ 
      console.log($("gender", this).text()); 
     }); 
    } 
}); 

更新:

ちょうどWebサービスをチェックし、私はすべてのartistが指定genderタグを持っていないことがわかりました。この場合は、次を使用することができます。

$("artist", xml).each(function(){ 
     var gender = $("gender", this); 
     if(gender.length>0) 
      console.log($(gender).text()); 
    }); 

JSFiddle Demo here.

+0

ありがとうございます@papaiatis。それは働いています –

関連する問題