Jquery通过属性值过滤XML数据

jquery filter xml data by attribute value

本文关键字:过滤 XML 数据 属性 Jquery      更新时间:2023-09-26

xml code:

<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文件使用循环来获得每个区域的不同安排?

你可以这样使用选择器:

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

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