craigslist rss feed

时间:2009-03-29 20:27:42

标签: javascript jquery xml rss

我正在尝试解析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的任何其他属性。如果我只是尝试将输出打印到屏幕上,我会得到“对象对象”,这意味着它正确地返回了提要。

有人知道我错过了什么吗?

2 个答案:

答案 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/