我正在尝试解析craigslist rss feed中的数据。
这是Feed网址 - http://www.craigslist.org/about/best/all/index.rss
我正在使用jfeed,我的代码在下面给出
jQuery(function() {
jQuery.getFeed({
url: 'proxy.php?url=http://www.craigslist.org/about/best/all/index.rss',
success: function(feed) {
jQuery('#result').append('<h2>'
+ feed.title
+ '</h2>');
}
});
});
但是,我没有显示Feed标题或Feed的任何其他属性。如果我只是尝试将输出打印到屏幕上,我会得到“对象对象”,这意味着它正确地返回了提要。
有人知道我错过了什么吗?
答案 0 :(得分:3)
首先:由于crossdomain政策,您无法从其他域获取数据。我不知道jfeed,但在我的项目中,我想出了这个解决方案。使用这个简单的功能,您可以节省一些带宽和代码开销。
工作示例
http://intervisual.de/stackoverflow/fetchxml/index.html
proxy.php(src:http://jquery-howto.blogspot.com/2009/04/cross-domain-ajax-querying-with-jquery.html)
<?php
// Set your return content type
header('Content-type: application/xml');
// Website url to open
$daurl = 'http://www.craigslist.org/about/best/all/index.rss';
// Get that website's content
$handle = fopen($daurl, "r");
// If there is something, read and return
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
}
fclose($handle);
}
?>
<强>的jQuery 强>
$.ajax({
type: "GET",
url: "proxy.php",
dataType: "xml",
success: parseXml
});
function parseXml(xml) {
console.log(xml);
$(xml).find("item").each(function() {
var content = $(this).find("title").text()
$("#news_list").append('<li>' + content +'</li>');
});
}
<强> HTML 强>
<div id="news_list"></div>
答案 1 :(得分:1)
或者,您可以使用其他服务来读取RSS源并将其转换为JSON,如果您无权访问任何服务器端环境,这非常有用。
要做到这一点,我通常使用YQL,但肯定还有其他服务。
以下是使用craigslist的工作示例,其中包含来源:http://jsfiddle.net/soparrissays/NFSaq/2/