使用JavaScript解析RSS提要-不使用外部服务?

使用JavaScript解析RSS提要-不使用外部服务?,javascript,ajax,parsing,rss,mediawiki,Javascript,Ajax,Parsing,Rss,Mediawiki,我基本上整天都在四处奔波,试图实现一个目标,即使用Javascript从两个不同的站点获取RSS提要。我发现很多网站都能做到这一点,但有三个问题: 我没有能力像我想的那样对帖子布局进行风格化,这是一个问题 添加了一些俗气的“ECTXX提供的RSS2JAVASCRIPT提要” 他们还尝试加载图像——要知道这是为了在侧边栏上提供一个15个或更少字符的小新闻提要 基本上,我希望能够完全控制RSS数据的布局,同时尽可能避免服务。以下是我建立的布局:-在每个URL的末尾添加Ref=或#?Ref=,这一点非

我基本上整天都在四处奔波,试图实现一个目标,即使用Javascript从两个不同的站点获取RSS提要。我发现很多网站都能做到这一点,但有三个问题:

  • 我没有能力像我想的那样对帖子布局进行风格化,这是一个问题
  • 添加了一些俗气的“ECTXX提供的RSS2JAVASCRIPT提要”
  • 他们还尝试加载图像——要知道这是为了在侧边栏上提供一个15个或更少字符的小新闻提要 基本上,我希望能够完全控制RSS数据的布局,同时尽可能避免服务。以下是我建立的布局:-在每个URL的末尾添加Ref=或#?Ref=,这一点非常重要,链接到的站点需要看到这一点,以便了解是谁将它们链接到了那里(这样他们就可以链接回我们-当出现“back to XXX”图像时,他们这边的功能会在他们的站点上弹出一个“back to XXX”图像)

    我是这样想的:

  • 考虑到众多的“服务”正在这样做,使用Javascript解析和设置RSS提要以进行显示必须相当容易
  • 按照我们的计划,获得布局和链接所需的操作类型与“服务”不起作用-我们不能在这里加载一些外部JS文件,我们需要自己完成这项工作
  • 你需要了解一些其他的东西,我昨天才“发现”Javascript,所以它对我来说还是相当新的

    以下是我要问的问题:如果不使用谷歌API/一些RSS提要服务,我将如何做到这一点?出于几个原因,我希望数据能够在本地处理


    我使用MediaWiki软件进行操作,到目前为止,大多数Javascript都运行得很顺利,下面是另一个例子。在这种情况下,我该怎么办?鉴于目前的限制,我无法做到这一点。

    如果不使用外部服务,在纯JS中是不可能的。唯一的选择是在本地php scri的帮助下获取远程提要然后,您可以阅读本地php脚本,而不是远程提要,然后做任何您喜欢的事情

    但使用谷歌服务到底有什么问题

    但是,这里有一个非常基本的示例,使用PHP和JS一起读取外部提要:

    feed.php:

    <?php
    $ch = curl_init($_GET['url']);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $xml = curl_exec($ch);
    header("Content-Type: text/xml");
    echo $xml;
    curl_close($ch);
    exit;
    

    这可以通过字符串过滤等方式进行扩展(以避免XSS等)。

    老实说,我不知道这一切是如何运作的。在被要求在主页上发布新闻提要之前,我只是该网站的一名基本设计师。我在谷歌找到的关于该主题的每一份“指南”都与它的“最新指南”不匹配“版本-谷歌改变了他们的布局,因为他们是书面的,所以我不知道。如果有人能告诉我,我似乎不明白。我可以推荐通过php(或任何其他服务器端语言)获取远程提要。我添加了一个例子。不幸的是,我不能在网站上运行PHP,因为我没有管理员权限——尽管我可以让管理员将其作为扩展安装,但不知道MediaWiki将如何处理。我想它可以保存在服务器上,而不是维基本身。举个例子会很有帮助,这对我来说是全新的。MediaWiki是基于PHP的。此外,PHP只是一个例子。但如果您不想使用外部服务,则必须使用服务器端脚本语言在本地读取外部源。我了解Mediawiki是基于PHP的,但我不确定Mediawiki如何将其转换为可接受的代码,除非它允许您安装任何扩展?这就是为什么我说最好不要让它在wiki上运行,而是在服务器上运行。这里还有一个愚蠢的问题:我该如何展示和设计它?就编程而言,我只知道Ruby和离线C。
    function readFeed() {
        var feedURL = "http://an.example/feed.xml";
    
        $.get("feed.php?url=" + feedURL, function(data) {
            // Do, whatever you like...
        });
    };