在AJAX get请求上过滤XML结果

时间:2013-04-21 13:37:20

标签: jquery html xml ajax

我是AJAX的新手,我正在尝试将可过滤信息从XML文档中提取到网页。到目前为止,我正在尝试使用这些过滤的XML项创建一个数组,然后将数组中的项目拉到页面上。

我的XML文档非常简单,我想要做的就是显示“类型”为100的项目。最佳做法是过滤服务器端还是可以在请求期间/之后进行过滤?有谁知道为什么这个脚本不起作用和/或是否有更有效的方法?

这是我的XML:

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

这是我的剧本:

$(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>" );
    });
});

1 个答案:

答案 0 :(得分: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>

相关问题