jquery按属性值过滤xml数据

时间:2011-08-18 13:11:15

标签: javascript jquery xml

xml代码:

<area>
 <point area="54" lat="44.744081" lng="-62.790818" />
 <point area="54" lat="44.743851" lng="-62.792953" />
 <point area="54" lat="44.744439" lng="-62.794366" />
 <point area="55" lat="44.786528" lng="-62.835136" />
 <point area="55" lat="44.787447" lng="-62.835955" />
 <point area="55" lat="44.786528" lng="-62.835136" />
 <point area="56" lat="44.746209" lng="-62.83688" />
 <point area="56" lat="44.745966" lng="-62.836843" />
 <point area="56" lat="44.746246" lng="-62.836481" />
 <point area="56" lat="44.746209" lng="-62.83688" />
</area>

我想通过区号来检索过滤后的信息。在我的jQuery代码中,我有:

$(xml).find('point').each(function(){
  var area = $(this).attr('area');
  if(area == 56){
    var alat=$(this).attr('lat');
    var alng=$(this).attr('lng');
    string += 'lat= ' + alat + ', lng=' + alng;
    }       
  });

我在网上看到了一些建议,并认为我可以这样做:

$(xml).find("point[area='56']").each(function(){
    var alat=$(this).attr('lat');
    var alng=$(this).attr('lng');
    string += 'lat= ' + alat + ', lng=' + alng;      
  });

那么我如何能够很好地简化我的代码,以便我可以使用循环xml文件来获得不同安排的每个区域?

1 个答案:

答案 0 :(得分:0)

您可以使用这样的选择器:

$(xml).find("[area][area!=]")

将查找xml文本中具有非area属性的所有元素