使用jQuery解析XML ...检索元素的问题

时间:2010-03-28 20:18:50

标签: jquery xml parsing

XML片段:

<results>
   <review>
      <api_detail_url>http://api.giantbomb.com/review/1/</api_detail_url>
      <game>
         <api_detail_url>http://api.giantbomb.com/game/20462/</api_detail_url>
         <id>20462</id>
         <name>SingStar</name>
      </game>
      <score>4</score>
   </review>
</results>

这是我的测试代码,只是为了显示是否正在收集数据('data'包含XML):

var element;

$(data).find('review').each(function() {
    element = $(this).find('name').text();
});

alert(element); 

现在问题是,只有这个查询实际上会返回数据:

$(this).find('score').text();

在这种情况下,警告框会弹出'4'。这两个其他查询不返回任何内容(警告框为空白):

$(this).find('api_detail_url').text();
$(this).find('name').text();

我尝试过使用jQuery选择器,比如......

$(this).find('game > name').text();

...但是这也不起作用,仍然会得到一个空白警告框。我错过了什么吗?正在Chrome中进行测试。

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

假设在xml中你有xml文档

$(xml).each(function (index, item) {
    $reviews = $(item).find('review');

    //assuming that you have more than one review in results
    $reviews.each(function (i, rev) {
        var api = $(rev).find('api_detail_url').text();
        var $game = $(rev).find('game');
        var gameApi = $game.find('api_detail_url').text();
        var gameID = $game.find('id').text();
        var gameName = $game.find('name').text();                     

    });

});