我已将xml转换为json并希望使用循环过程获取一些数据。实际上,我想在标题,描述和链接方面获取数据,但我在这里堆积并给出错误。
$(function(){
url = 'http://www.straitstimes.com/news/sport/rss.xml';
$.ajax({
type: "GET",
url: 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=1000&callback=?&q=' + encodeURIComponent(url),
dataType: 'json',
error: function(){
alert('Unable to load feed, Incorrect path or invalid feed');
},
success: function(xml){
html='';
console.log(xml.responseData.feed.entries);
for (var i = 0; i < xml.responseData.feed.entries .length; i++){
html+= xml.responseData.feed.entries[i].title+'<br/>'+
html+= xml.responseData.feed.entries[i].description+'<br/>'+
html+= xml.responseData.feed.entries[i].link+'<br/>';
}
$('#feedContainer').html(html);
}
});
});
答案 0 :(得分:2)
使用+ =构造函数时,您将添加到已定义的变量中。因此,您不需要行末尾的+,您需要结束语句。所以
html+= xml.responseData.feed.entries[i].title+'<br/>'+
html+= xml.responseData.feed.entries[i].description+'<br/>'+
html+= xml.responseData.feed.entries[i].link+'<br/>';
应该是
html+= xml.responseData.feed.entries[i].title+'<br/>';
html+= xml.responseData.feed.entries[i].description+'<br/>;
html+= xml.responseData.feed.entries[i].link+'<br/>';
或
html = xml.responseData.feed.entries[i].title+'<br/>'+
xml.responseData.feed.entries[i].description+'<br/>'+
xml.responseData.feed.entries[i].link+'<br/>';
答案 1 :(得分:1)
这是正确的代码JSFiddle
您在html + =行上的语法有些问题。 (+不正确)。
我为自己分离了url声明(只是为了确保没有问题)。
$(function(){
var url1 = 'http://www.straitstimes.com/news/sport/rss.xml';
var url2 = 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=1000&callback=?&q=' + encodeURIComponent(url1);
$.ajax({
type: "GET",
url: url2,
dataType: 'json',
error: function(){
alert('Unable to load feed, Incorrect path or invalid feed');
},
success: function(xml){
html='';
console.log(xml.responseData.feed.entries);
for (var i = 0; i < xml.responseData.feed.entries.length; i++) {
console.log(xml.responseData.feed.entries[i].title);
html += xml.responseData.feed.entries[i].title+'<br/>';
html += xml.responseData.feed.entries[i].description+'<br/>';
html += xml.responseData.feed.entries[i].link+'<br/>';
}
$('#feedContainer').html(html);
}
});
});