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();
});
});
精彩评论