使用jQuery和Ajax解析XML RSS提要

时间:2015-10-19 11:13:27

标签: jquery ajax xml rss

我正在尝试解析xml RSS提要(http://blog.counter-strike.net/index.php/feed/),目前我可以获取<link><description>中包含的内容但是我无法获取<title>因为每当我试图获得它而不是给我博客标题时,我就会获得自己网页的标题。

我觉得奇怪的是,如果我不断更新页面,最终会显示博客的实际标题。不确定是什么导致了这一点,但理想情况下我更喜欢只拥有博客的标题,而不是我自己的网页。

我看过这个帮助我入门的问题:parsing xml using jquery and ajax

以下是我到目前为止的代码

$(document).ready(function () { $.ajax({ url: 'http://cors.io/?u=http://blog.counter-strike.net/index.php/feed/', type: 'GET', dataType: "xml" }).done(function(xml) { $.each($("item", xml), function(i, e) { $("#feed").append($(e).find("item title")); $("#feed").append("<br />") $("#feed").append($(e).find("description")); $("#feed").append("<br />") $("#feed").append($(e).find("link")); $("#feed").append("<br />") }); }); });

除了检索博客的标题之外,如果有人能告诉我如何替换描述中显示的&#8217;之类的内容,我会很感激。< / p>

最后是否可以从RSS Feed中检索和显示图像和视频?它们似乎包含在<content:encoded>中。

1 个答案:

答案 0 :(得分:4)

我不太确定为什么我获得网站标题而不是RSS项目标题,但我最终得到了这个工作。下面是我用来检索RSS项目的标题和网址的代码。

$(document).ready(function () {
    $.ajax({
        url: 'http://cors.io/?u=http://blog.counter-strike.net/index.php/feed/',
        type: 'GET',
        dataType: "xml"
    }).done(function(xml) {

        $.each($("item", xml), function(i, e) {

            var blogNumber = i + 1 + ". ";

            var itemURL = ($(e).find("link"));
            var blogURL = "<a href='" + itemURL.text() + "'>" + itemURL.text() +"</a>";

            var itemTitle = ($(e).find("title"));
            var blogTitle = "<h4>" + blogNumber + itemTitle.text() + "</h4>";

            $("#feed").append(blogTitle);
            $("#feed").append(blogURL);

        });
    });
});

我发现通过将我收到的值分配给变量来调试从RSS项目检索的内容更容易,然后我可以检查使用Google Chrome DevTools的值。

我决定不从RSS Feed中获取图像/视频等描述和媒体文件,而只是在我的网页列表中显示标题和网址。如果其他人想要提供如何使描述和媒体文件正常工作的答案,我将很乐意批准它作为解决方案。

希望这可以帮助任何遇到类似问题的人。