2015-01-01 4 views
0

XML 파일에서 데이터를 가져 오는 "TV 가이드"를 만들고 있습니다.jQuery 구문 분석 XML 특정 요소 찾기

$(document).ready(function(){ 
$.ajax({ 
    type: "GET", 
    url: "programmes.xml", 
    dataType: "xml", 
    error: function (xhr, status, error) { 
     console.log(status, error); 
    }, 
    success: function(xml) { 

     var programmeOne = $(xml).find('programme').first(); 
     $(xml).find('[programme[id="ch1pg1"]').text(); 
     $('.p1').text(programmeOne.find('title').text()); 

    } 

}); 

을 그리고 여기에 XML입니다 : 여기에 지금까지 가지고 무엇을 내가 코드가 작동

$(xml).find('[programme[id="ch1pg1"]').text(); 

제거하면

<channel id="bbc1" source="Sky" date="20/12/2014"> 
<programme id="ch1pg1"> 
    <desc>The latest news, sport, business and weather from the BBC's Breakfast team.</desc> 
    <title>Breakfast</title> 
    <start>0900</start> 
    <end>1100</end> 
</programme> 
<programme id="ch1pg2"> 
    <desc>James Martin presents the weekly cooking show. [HD] [S]</desc> 
    <title> Kitchen</title> 
    <start>1100</start> 
    <end>1200</end> 
</programme> 
<programme id="ch1pg3"> 
    <desc>descriptions [HD] [S]</desc> 
    <title>second Kitchen</title> 
    <start>1200</start> 
    <end>1300</end> 
</programme> 

있지만, 모든 프로그램 (1)의 각 채널은 동일하게 사용 ch1pg1의 제목.

"ch1pg1"이라는 ID를 가진 부모 요소 "program"의 "title"요소 만 함수로 사용할 수있게하려면 어떻게해야합니까?

답변

1

먼저 id으로 검색 할 때 # 선택기를 사용하면 더 빠르고 더 짧게 할 수 있습니다.

문자열을 반환하고 jQuery 메서드를 사용하려고하면 두 번째 코드 줄이 작동하지 않으므로 두 번째 코드 줄이 작동하지 않습니다. 대신 jQuery 객체를 반환하고 사용하십시오. 이 시도 :

success: function(xml) { 
    var $programmeOne = $(xml).find('#ch1pg1'); 
    $('.p1').text($programmeOne.find('title').text()); 
} 

Example fiddle