【问题标题】:PHP - How to use SimpleXMLElementPHP - 如何使用 SimpleXMLElement
【发布时间】:2013-02-11 04:38:00
【问题描述】:

尝试使用SimpleXMLElement 获取 RSS 提要,但我不完全了解如何执行此操作。我的代码如下:

function getFeed($feed_url) {

    $content = file_get_contents($feed_url);
    $x = new SimpleXmlElement($content);
    var_dump($x);

}

getFeed("http://feedproxy.google.com/themeforest");

它输出以下内容:

object(SimpleXMLElement)#1 (2) { ["HEAD"]=> object(SimpleXMLElement)#2 (1) { ["TITLE"]=> string(17) "永久移动" } ["BODY"]=> 对象(SimpleXMLElement)#3(3){[“@attributes”]=>数组(2){ ["BGCOLOR"]=> 字符串(7) "#FFFFFF" ["TEXT"]=> 字符串(7) "#000000" } ["H1"]=> string(17) "永久移动" ["A"]=> string(4) "这里" } }

我已尝试将上面的代码更改为此,但它没有输出任何内容,并且我得到一个 foreach 错误:

function getFeed($feed_url) {

    $content = file_get_contents($feed_url);

    $x = new SimpleXmlElement($content);
    echo '
        <ul>';

    foreach($x->channel->item as $entry) {
        echo '
        <li>
          <a href="' . $entry->link . '" title="' . $entry->title . '">' . $entry->title . '</a>
        </li>';
    }

    echo '
        </ul>';

}

getFeed("http://feedproxy.google.com/themeforest");

谁能告诉我我到底做错了什么?

【问题讨论】:

    标签: php rss simplexml


    【解决方案1】:

    它不能像对象一样被访问。请在此处阅读第一个示例: http://www.php.net/manual/en/simplexmlelement.children.php

    【讨论】:

    • 我正在尝试创建一个设置,用户在其中键入 RSS 提要的 URL,它会自动将提要信息标题和链接输出到他们网站的某个部分。我怎么能抓住这个信息。使用儿童?但更重要的是,如何区分正常输出和是否需要搜索孩子...?
    • 那么,$content 是什么样的?
    • 天啊,RSS 源 URL 被移动到另一个链接,所以天啊,我没有注意到这一点,并输入了错误的 RSS 源 URL。它适用于新网址,即:http://feeds.feedburner.com/themeforest 谢谢,主题已解决!
    • 只想给你答案,因为你实际上让我意识到这是 RSS 提要的错误 URL。
    • 谢谢所罗门 - 我确实看到了,但我认为您是有意向用户表明 RSS 提要已更改。我很高兴你解决了。顺便说一句,如果你编辑你的问题以在最后添加一些关于你是如何计算出来的建议的,这对其他读者来说会很好,因为我的回答不是很直观。
    猜你喜欢
    • 2011-02-27
    • 2020-09-28
    • 2018-02-13
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多