在Twig中列出来自RSS feed的项目

时间:2018-06-13 16:01:27

标签: symfony twig

尝试列出博客RSS Feed中的项目。我添加了以下控制器:

   /**
     * @Route("/rss", name="rss",
     *      options={"sitemap" = true}
     *     )
     */
    public function rss(){
        $rss = simplexml_load_file('https://somesite.wordpress.com/feed');

        return $this->render('default/rss-reader.html.twig', array(
            'rss' => $rss,
        ));
    }

在我的树枝模板中有以下内容:

{% for item in rss %}
    {{ item.item.title }}
    {{ item.item.link }}
{% endfor %}

我之前只有item.title,但后来显示了博客网站的标题,而不是每个博客。当我使用它时,它只显示第一个帖子而不会继续。

1 个答案:

答案 0 :(得分:1)

simplexml_load_file(http://php.net/manual/fr/function.simplexml-load-file.php)返回一个SimpleXMLElement http://php.net/manual/fr/class.simplexmlelement.php对象。

所以它取决于XML结构,RSS feed可以像:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>Mon site</title>
        <description>Ceci est un exemple de flux RSS 2.0</description>
        <lastBuildDate>Sat, 07 Sep 2002 00:00:01 GMT</lastBuildDate>
        <link>http://www.example.org</link>
        <item>
            <title>Actualité N°1</title>
            <description>Ceci est ma première actualité</description>
            <pubDate>Sat, 07 Sep 2002 00:00:01 GMT</pubDate>
            <link>http://www.example.org/actu1</link>
        </item>
        <item>
            <title>Actualité N°2</title>
            <description>Ceci est ma seconde actualité</description>
            <pubDate>Sat, 07 Sep 2002 00:00:01 GMT</pubDate>
            <link>http://www.example.org/actu2</link>
        </item>
    </channel>
</rss>

所以在这里,你试着循环通过“频道”标签。

尝试使用xpath http://php.net/manual/fr/simplexmlelement.xpath.phpitem标记检索为SimpleXMLElement的数组。