【问题标题】:Parsing error -- Creating an RSS feed with CodeIgniter解析错误——使用 CodeIgniter 创建 RSS 提要
【发布时间】:2011-05-19 13:12:15
【问题描述】:

大家好,我正在使用 codeigniter 创建一个 rss 提要,但出现了特定错误: XML 解析错误:文档元素后出现垃圾 地点:http://mysite.com/feeds/latest

在谷歌搜索后无法找到解决问题的方法(尽管结果很多),我来到这里寻求建议。

我有

<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>

后面是我的网站标题、链接、描述、发布日期、dc:date 标签。

后跟一个循环结果的 foreach 语句,如下所示:

<?php foreach($feedResults as $feedItem): ?>
 <item>
       <title><?php echo $feedItem->title; ?></title>
          <link><?php echo site_url('/'.$feedItem->ID) ?></link>
          <guid><?php echo site_url('/'.$feedItem->ID) ?></guid>
    <description>descri[</description>
          <pubDate><?php echo date ('r', $feedItem->time());?></pubDate>
    </item>        
    <?php endforeach; ?>

除了检索 $feedResults 之外,我的 codeigniter 控制器并没有做太多事情,将标头设置为: header("内容类型:文本/xml"); 然后将结果传递给视图。

谢谢大家。

【问题讨论】:

  • 这可能是 descri[
  • 我改成静态数据了,还是没变。

标签: php xml codeigniter rss


【解决方案1】:

如果您使用 .html 扩展名保存您的 RSS 提要,您会发现它根本不是 RSS,而是一个 HTML 错误页面:

ErrorException [ Parse Error ]:语法错误,意外的 T_STRING

APPPATH/views/feeds_latest_view.php [1]

1 <?xml version="1.0" encoding="UTF-8"?>
2 <rss xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
3   <channel>
4 
5     <title>Amazon.com Gold Box Deals</title>
6     <link>http://www.amazon.com/gp/goldbox</link>
  1. {PHP 内部调用} » MY_Exceptions::shutdown_handler(arguments)

我的猜测是您启用了 PHP short_tags,这意味着 &lt;? 是 &lt;?php 的简写,并打开一个 PHP 代码块。当 PHP 看到 &lt;?xml 时,它会窒息,因为它试图将 XML 处理指令解释为一段 PHP 代码。

要解决此问题,请在 php.ini 中关闭 short_tags。或者通过编写 PHP 代码来发出指令来解决它:

<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>

【讨论】:

    【解决方案2】:

    “位置:http://mysite.com/feeds/latest”看起来像一个 HTTP 标头(位置标头是重定向的工作方式)。您是否将重定向到另一个 URL 的 URL 传递给无法遵循重定向的 XML 解析器?

    【讨论】:

      猜你喜欢
      • 2012-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 2012-11-08
      • 2012-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多