开发者

Parsing XML with jQuery... problem retrieving elements

开发者 https://www.devze.com 2022-12-24 05:13 出处:网络
An XML snippet: <results> <review> <api_detail_url>http://api.giantbomb.com/review/1/</api_detail_url>

An XML snippet:

<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>

And here's my testing code, just to show whether data is being collected or not ('data' holds the XML):

var element;

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

alert(element); 

Now here's the problem, only this query actually returns data:

$(this).find(开发者_StackOverflow'score').text();

The alert box in this case would pop up with '4'. These two other queries don't return anything (the alert box is blank):

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

I've tried using jQuery selectors, like...

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

...but that doesn't work, either, still get a blank alert box. Am I missing something? Testing is being done in Chrome.


Try something like this:

assuming that in xml you have the xml document

$(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();                     

    });

});
0

精彩评论

暂无评论...
验证码 换一张
取 消