2017-12-14 11 views
0

XML 파일을 구문 분석하려고했습니다. 그것은 작동하지만, 두 번째 송 요소 만 구문 분석하고 싶습니다. 내가 어떻게 할 수 있니?Jquery로 XML 구문 분석을 사용하여 두 번째 요소 선택

나는

<script> 

    $(document).ready(function(){ 

     var myObj = {}; 
     $.ajax({ 
      type: "GET", 
      url: "Play.xml", 
      dataType: "xml", 
      success: function(xml) { 
       $(xml).find('Song').each(function(){ 

        myObj.title = $(this).attr('title'); 
        $(this).find('Artist').each(function(){ 


         myObj.artist = $(this).attr('name'); 
        }); 
        $(this).find('Info').each(function(){ 

         myObj.time = $(this).attr('StartTime'); 
         myObj.id = $(this).attr('ID'); 
        }); 

        $('.history').append("<div><img src='/covers/"+myObj.id+".jpg'></div><div class='style=float:left'><div class='time'>"+myObj.time+" {"+myObj.id+"}</div><div class='artist'>"+myObj.artist+"</div><div class='title'>"+myObj.title+"</div></div>"); 
       }); 
      } 
     }); 

    }); 
    </script> 

    <div class="history"></div> 

여러분의 도움에 감사드립니다

XML 파일

<?xml version="1.0" encoding="utf-8"?> 
<Event status="happened"> 
    <Song title="GOODBYE (FEAT. LYSE)"> 
    <Artist name="FEDER"> 
    </Artist> 
    <Info StartTime="23:10:54" ID="333" /> 
    </Song> 
    <Song title="HOW YOU REMIND ME"> 
    <Artist name="NICKELBACK"> 
    </Artist> 
    <Info StartTime="23:15:49" ID="295" /> 
    </Song> 
</Event> 

JQuery와 스크립트 ... 수정 .each 변경하려고했으나 일을하지 않았다!

답변

0

eq()을 사용하여 색인을 통해 노래 요소를 가져옵니다. 각 태그

$.ajax({ 
    type: "GET", 
    url: "Play.xml", 
    dataType: "xml", 
    success: function(xml) { 

     var $song = $(xml).find('Song').eq(1), 
     $info = $song.find('Info'), 
     $artist = $song.find('Artist'); 

     var myObj = { 
     title: $song.attr('title'), 
     artist: $artist.attr('name'), 
     time: $info.attr('StartTime'), 
     id: $info.attr('ID') 
     }; 

     $('.history').append("<div><img src='/covers/" + myObj.id + ".jpg'></div><div class='style=float:left'><div class='time'>" + myObj.time + " {" + myObj.id + "}</div><div class='artist'>" + myObj.artist + "</div><div class='title'>" + myObj.title + "</div></div>"); 

    } 
    }); 

DEMO

+0

와우 중 하나가 있기 때문에 그런 아이들의 각각에 대해 당신은 each 필요하지 않습니다! @charlietfl 완벽하게 작동합니다. 고맙습니다! – hiloes