如何使用jQuery从xml中查找/提取数据

我正在尝试从下面的xml中提取StateLongName和StateShortName值。

我知道必须有一个简单优雅的方法来使用jQuery。

  Alabama AL 
Alaska AK
...elments removed for brevity

这是我尝试过的。

将xml从上面加载到Javascript变量名称xml中。

试试#1

 $(xml).find("TABLE").each(function() { var stateName = $(this).find("StateLongName").innerText; var stateCode = $(this).find("StateShortName").innerText; }); 

尝试#1找不到任何东西,永远不会进入加载stateName和stateCode变量。

试试#2

 $(xml).find("StateLongName").each(function() { var stateName = $(this).find("StateLongName").innerText; var stateCode = $(this).find("StateShortName").innerText; }); 

尝试#2找到匹配项,但stateName和stateCode未定义。

试试#3

 $(xml).find("StateLongName").each(function() { var stateName = $($(xml).find('StateLongName').parent()[0].innerHTML)[1].data; var stateCode = $($(xml).find('StateLongName').parent()[0].innerHTML)[5].data; }); 

尝试#3工作,但必须有一个更好的方法。 请赐教。

谢谢你的时间!

它区分大小写,使用"Table"如下:

 $(xml).find("Table").each(function() { var stateName = $(this).find("StateLongName").text(); var stateCode = $(this).find("StateShortName").text(); }); 

更新:对不起,这个有点莫名其妙,不要使用

,它把它视为html创建一个

并且事情从那里变得陌生:)如果你改变它只是邻接其他任何东西,它会工作,这是一个将其更改为的示例: http : //jsfiddle.net/Yvetc/

这是一个完整的裸测试页面:

         
 $.ajax({ type: "GET", url: "labels.xml", dataType: "xml", success: function(xml) { $(xml).find('label').each(function(){ var id_text = $(this).attr('id') var name_text = $(this).find('name').text() $('
  • ') .html(name_text + ' (' + id_text + ')') .appendTo('#update-target ol'); }); //close each( } }); //close $.ajax(

    示例xml为此: