xml feed的代码无法正常工作

时间:2016-09-15 14:22:50

标签: php xml xpath

我正在尝试将xml feed打印到我的php页面中,但是这段代码运行不正常,我不明白为什么。它只显示从xpath到浏览器的浏览器代码?> 。请有人帮我这个吗

<html>
<head>
   <title>XML FEED</title>
 </head>
 <body>
   <ul>
   <?php
     $dom = simplexml_load_file("http://feeds.bbci.co.uk/news/rss.xml");
     foreach ($dom->xpath("/channel/item") as $item)
     {
        print "<li>";
        print $item->title;
        print "</li>";
     }
    ?>
  </ul>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

我怀疑您的服务器未配置为允许短PHP标记(无论如何不鼓励),所以请始终使用完整的开始标记。

由于PHP没有解析你的代码,所以浏览会发送以下内容......

 <? . . . . . foreach ($dom->   

哪个是无效的HTML,因此不会显示,但如果您查看页面的来源,您将看到更多的PHP代码。

简单地使用<?php启动代码将触发PHP解析,事情应该有效。

答案 1 :(得分:0)

考虑使用双正斜杠调整XPath,因为 channel 不是根元素:

foreach ($dom->xpath("//channel/item") as $item) {
    ...
}

或者,使用表达式中的root rss 元素:

foreach ($dom->xpath("/rss/channel/item") as $item) {
    ...
}