2012-02-21 2 views
0

다음 xml webservice를 사용하고 싶습니다. www.musicbrainz.org/ws/2/artist/?query=artist:michael jackson자바 스크립트 또는 jquery를 사용하여 XML 웹 서비스 응답을 구문 분석하는 방법

는 형식 다음과 같다 :

<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> 

난 그냥 그것에서 성별을 얻을이 XML &을 구문 분석합니다. 다음 코드를 사용하여 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

JSFiddle Demo here.이 내 대답은 아래를 참조하십시오. 모든 응답은 좋을 것입니다! – 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()); 
     }); 
    } 
}); 

업데이트 :

은 그냥 웹 서비스를 확인하고 나는 모든 artist가 지정된 gender 태그가없는 것을 보았다. 이 경우 다음 사용할 수 있습니다

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

+0

감사합니다. @papaiatis. 작동 원리 –