嘿伙计们,我正在使用codeigniter创建一个rss feed,我得到了具体的错误: XML解析错误:文档元素之后的垃圾 地点:http://mysite.com/feeds/latest
经过Google搜索并无法找到我的问题的解决方案(尽管有大量结果)我来这里寻求建议。
我有
<?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>
关注我的网站标题,链接,说明,pubdate,dc:日期标记。
跟着一个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(“Content-Type:text / xml”); 然后将结果传递给视图。
谢谢你们。
答案 0 :(得分:1)
如果您使用.html
扩展名保存RSS Feed,您会发现它根本不是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>
- {PHP内部调用}»MY_Exceptions :: shutdown_handler(arguments)
醇>
我的猜测是你启用了PHP short_tags
,这意味着<?
是<?php
的简写并打开了一个PHP代码块。当PHP看到<?xml
尝试将XML处理指令解释为PHP代码块时,PHP就会窒息。
要解决此问题,请在php.ini中关闭short_tags
。或者通过编写PHP代码来发布指令来解决它:
<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
答案 1 :(得分:0)
“位置:http://mysite.com/feeds/latest”看起来像HTTP标头(位置标头是重定向的工作方式)。您是否将重定向到另一个URL的URL传递给无法跟踪重定向的XML解析器?