weixin_33727510 2014-11-15 09:43 采纳率: 0%
浏览 3

PHP Ajax RSS解析器

I am trying to build an RSS reader in a website, but cannot seem to get it to work. I am trying to populate my getrss.php file with many RSS feeds that I can later call in my html code. For example I want to make my life easier and create only 1 getrss.php file with 20 different RSS feeds, but call one feed in 20 different html documents. I am using the tutorial example located at http://www.w3schools.com/php/php_ajax_rss_reader.asp as a guideline, however I want to do things differently. I do not want a form. I just want the rss to display as soon as the webpage is loaded. However, it's not working. Also, how would I later call different xml links in the html file...let's say I have 20? I have this so far -

getrss.php:

<?php
//get the q parameter from URL
$q=$_GET["q"];

$q=$xml=("http://rss.msnbc.msn.com/id/3032091/device/rss/rss.xml");

$q2=$xml2=("httP://rss.feed2.xml")
$q3=$xml3=("httP://rss.feed3.xml")

$xmlDoc = new DOMDocument();
$xmlDoc->load($xml);

//get elements from "<channel>"
$channel=$xmlDoc->getElementsByTagName('channel')->item(0);
$channel_title = $channel->getElementsByTagName('title')
->item(0)->childNodes->item(0)->nodeValue;
$channel_link = $channel->getElementsByTagName('link')
->item(0)->childNodes->item(0)->nodeValue;
$channel_desc = $channel->getElementsByTagName('description')
->item(0)->childNodes->item(0)->nodeValue;

//output elements from "<channel>"
echo("<p><a href='" . $channel_link
     . "'>" . $channel_title . "</a>");
echo("<br>");
echo($channel_desc . "</p>");

//get and output "<item>" elements
$x=$xmlDoc->getElementsByTagName('item');
for ($i=0; $i<=2; $i++) {
    $item_title=$x->item($i)->getElementsByTagName('title')
    ->item(0)->childNodes->item(0)->nodeValue;
    $item_link=$x->item($i)->getElementsByTagName('link')
    ->item(0)->childNodes->item(0)->nodeValue;
    $item_desc=$x->item($i)->getElementsByTagName('description')
    ->item(0)->childNodes->item(0)->nodeValue;
    echo ("<p><a href='" . $item_link
          . "'>" . $item_title . "</a>");
    echo ("<br>");
    echo ($item_desc . "</p>");
}

?>

rss.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <script>
             function showRSS(str) {
                if (str.length==0) {
                    document.getElementById("rssOutput").innerHTML="";
                    return;
                 }
                if (window.XMLHttpRequest) {
                     // code for IE7+, Firefox, Chrome, Opera, Safari
                     xmlhttp=new XMLHttpRequest();
                 } else {  // code for IE6, IE5
                    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                } 
                xmlhttp.onreadystatechange=function() {
                    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
                        document.getElementById("rssOutput").innerHTML=xmlhttp.responseText;
                    }
                }
                xmlhttp.open("GET","getrss.php?q="+str,true);
                xmlhttp.send();
            }
        </script>
    </head>
    <body>

        <div id="rssOutput">RSS-feed will be listed here...</div>
    </body>
</html>
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 对于相关问题的求解与代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
    • ¥15 保护模式-系统加载-段寄存器
    • ¥15 电脑桌面设定一个区域禁止鼠标操作
    • ¥15 求NPF226060磁芯的详细资料