如何使用JQuery解析xml与命名空间(并适用于所有浏览器..)?

我需要使用JQuery解析来自Web服务的XML响应

http://code.jquery.com/jquery-1.11.0.min.js 

在这里,您是我的XML示例

     7.700007,44.802147 7.749396,44.849996       7.735138,44.810267 7.735138,44.810267     7.735138,44.810267   13800026457291 Borgata Tetti Sotto 16 01004041 12030 CARAMAGNA PIEMONTE   CUNEO PIEMONTE       7.735397,44.812403 7.735397,44.812403     7.735397,44.812403   13800026457290 Borgata Tetti Sotto 25 01004041 12030 CARAMAGNA PIEMONTE   CUNEO PIEMONTE   

我必须在一些js变量中提取这些字段:

  • MS:诺姆
  • MS:民间博物馆
  • MS:国家统计局
  • MS:帽
  • MS:COMUNE

我还需要确保我的代码在IE,Firefox和Chrome上运行正常。

我已经看过并尝试了几种我在SO中找到的解决方案,但都没有用。

任何建议都非常感谢!

非常感谢你提前!!

切萨雷

您可以使用jQuery和find()迭代XML元素,就像使用HTML一样。 指定要选择的标记名称时,需要在选择器中省略名称空间前缀。

 var xmlText = $('#featureData').text(), $xmlData = $.parseXML(xmlText), $features = $('featureMember', $xmlData), extractedFeatures = []; $features.each(function () { var $this = $(this), feature = {}, items = [ 'nome', 'civico', 'istat', 'cap', 'comune' ], item; for (var i = 0; i < items.length; i++) { item = items[i]; feature[item] = $this.find(item).text(); } extractedFeatures.push(feature); }); $('#output').text(JSON.stringify(extractedFeatures)); 

请参阅此处的jsFiddle复制

在这个问题上,正确的解决方案显示为答案

使用JQuery解析带有命名空间的xml并适用于所有浏览器..

它现在适用于IE,FF和Chrome!

我希望这对其他人有用。

切萨雷