Ошибка синтаксического анализа - создание RSS-канала с CodeIgniter - PullRequest
0 голосов
/ 03 декабря 2010

Эй, ребята, я создаю RSS-канал с codeigniter и получаю конкретную ошибку: Ошибка синтаксического анализа 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: 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; ?>

Мой контроллер codeigniter ничего не делает, кроме получения $ feedResults, устанавливает заголовок в: заголовок («Content-Type: text / xml»); и затем передает результаты в представление.

Спасибо, ребята.

Ответы [ 2 ]

1 голос
/ 03 декабря 2010

Если вы сохраните свой RSS-канал с расширением .html, вы увидите, что это вовсе не 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, что означает, что <? является сокращением для <?php и открывает блок кода PHP.PHP задыхается, когда видит <?xml, пытаясь интерпретировать директиву обработки XML как блок кода PHP.

Чтобы это исправить, отключите short_tags в php.ini.Или обойти это, написав PHP-код для выдачи директивы:

<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
0 голосов
/ 03 декабря 2010

"Местоположение: http://mysite.com/feeds/latest" выглядит как заголовок HTTP (как работают перенаправления заголовки местоположения). Вы передаете URL-адрес, который перенаправляет на другой URL, в анализатор XML, который не может следовать за перенаправлениями?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...