使用jQuery和Ajax解析XML RSS feed

Mar*_*van 3 xml ajax rss jquery

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

我感到奇怪的是,最终如果我不断刷新页面,就会显示博客的实际标题。不知道是什么原因导致的,但是理想情况下,我更希望仅拥有博客的标题而不是自己的网页的标题。

我看了一个帮助我入门的问题:使用jquery和ajax解析xml

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

$(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;描述的内容替换描述中显示的类似内容,我将不胜感激。

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

Mar*_*van 7

我不太确定为什么要获得网站标题而不是RSS项目标题,但最终还是可以正常工作。这是下面的代码,我用来检索RSS项的标题和URL。

$(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);

        });
    });
});
Run Code Online (Sandbox Code Playgroud)

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

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

希望这将对遇到类似问题的任何人有所帮助。

  • 没有人“被CORS策略阻止:所请求的资源上没有'Access-Control-Allow-Origin'标头。”? (2认同)