2013-04-21 3 views
1

저는 AJAX를 처음 접했고 XML 문서의 필터링 가능한 정보를 웹 페이지로 가져 오는 예제를 작성하려고합니다. 지금까지 필자는 이러한 필터링 된 XML 항목을 사용하여 배열을 만든 다음 배열의 항목을 페이지로 가져 오려고합니다.AJAX에서 XML 결과 필터링하기

내 XML 문서는 매우 간단하며 "유형"이 100 인 항목을 표시하기 만하면됩니다.이 필터링 서버 측을 수행하는 것이 가장 좋은 방법입니까 아니면 요청 중에/후에 필터링 할 수 있습니까? ? 왜이 스크립트가 작동하지 않는지 그리고/또는 더 효율적인 방법이 있는지 누가 알 수 있습니까? 여기

<items> 
    <item id="1"> 
     <type>100</type> 
    <item> 
    <item id="2"> 
     <type>101</type> 
    <item> 
    <item id="3"> 
     <type>100</type> 
    <item> 
    <item id="4"> 
     <type>102</type> 
    <item> 
</items> 

내 스크립트입니다 : 여기

내 XML입니다

$(document).ready(function(){ 

    var array = []; 

    $.ajax({ 
     type: "GET", 
     url: "text.xml", 
     dataType: "xml", 
     success: function(xml){ 
      $(xml).find("item").each(function(){ 
       if(x == $(this).find("type") == "100"){ 
        $(this).push(array); 
       } 
      }); 
    }); 

    $.each(array, function() { 
     $(body).append("<p>" + $(this).attr("id") + "</p>"); 
    }); 
}); 

답변

3

을 시도해보십시오

$(document).ready(function(){ 
    $.ajax({ 
     type: "GET", 
     url: "text.xml", 
     success: function(xml){ 
      var items = $(xml).find("item").filter(function(){ 
       return $('type', this).text() == '100'; 
      }); 
      items.each(function(index, item){ 
       $('body').append("<p>" + $(item).attr("id") + "</p>"); 
      }); 
     } 
    }); 
}); 

데모 : Plunker

참고 : xml에 문제가 있습니다. item의 닫는 태그는 적절하지 않습니다. </item>

+0

감사합니다. 이것은 굉장합니다.이 유형은 "1001"유형의 항목을 반환 할뿐만 아니라 "100"을 포함하거나 "equal to"와 동등한 것을 포함합니까? 다시 한 번 감사드립니다! – mmmoustache

+0

@mmmoustache 사용자 정의 필터를 쓸 수 있습니다. –

+0

@ mmmoustache 업데이트를 참조하십시오. –

관련 문제