XML jquery解析:仅显示具有特定值的结果

时间:2013-03-20 08:57:46

标签: jquery xml xml-parsing

例如我有这个XML:

<data>
    <area>
        <state>SABAH</state>
        <parlim>P1</parlim>
        <name>Alice Smith</name>
    </area>
    <area>
        <state>SABAH</state>
        <parlim>P2</parlim>
        <name>John Smith</name>
    </area>
    <area>
        <state>SABAH</state>
        <parlim>P3</parlim>
        <name>Peter Smith</name>
    </area>
    <area>
        <state>SARAWAK</state>
        <parlim>P4</parlim>
        <name>Paul Smith</name>
    </area>
</data>

我正在用jquery解析它到一个html表:

 $.ajax({
  type: "GET",
  url: "parse.xml", 
  dataType: "xml",
  success: function(xml) {
   $(xml).find('area').each(function(){
    var Col0 = $(this).find('state').text();
    var Col1 = $(this).find('parlim').text();
    var Col2 = $(this).find('name').text();
    $('<tr></tr>').html('<td>'+Col0+'</td><td>'+Col1+'</td><td>'+Col2+'</td>').appendTo('#chart');
   });
  }
 });
});

如何使它只显示状态SABAH的结果(这是前3个结果)?提前致谢

1 个答案:

答案 0 :(得分:0)

更改

$(xml).find('area').each(function(){
    var Col0 = $(this).find('state').text();
    var Col1 = $(this).find('parlim').text();
    var Col2 = $(this).find('name').text();
    $('<tr></tr>').html('<td>'+Col0+'</td><td>'+Col1+'</td><td>'+Col2+'</td>').appendTo('#chart');
});

$(xml).find('area').each(function(){
    var Col0 = $(this).find('state').text();
    // check if Col0 = SABAH
    if (Col0 === 'SABAH') { 
       var Col1 = $(this).find('parlim').text();
       var Col2 = $(this).find('name').text();
       $('<tr></tr>').html('<td>'+Col0+'</td><td>'+Col1+'</td><td>'+Col2+'</td>').appendTo('#chart');
    }
});

这使用if语句检查state标记中的文字以决定是否继续