Синтаксический анализ rss XML-ошибки: неправильно сформирован - PullRequest
0 голосов
/ 27 ноября 2011

Я пытаюсь создать RSS-канал для моего сайта. когда я запускаю страницу rss, я получаю эту ошибку:

Ошибка синтаксического анализа XML: неправильно сформированное расположение: http://localhost/projects_rss.php Строка № 1, столбец 2:

вот мой код или хотя бы его часть xml

foreach($projects_array as $projects_array){    
    $parr[]= array(
      'title' =>  (string)$projects_array->title,
      'description'  =>  (string)$projects_array->text,
      'link'  =>  (string)'www.imjobs.com/project.php?project='.$projects_array->id ,
      'date'  =>  (string) date("D, d M Y H:i:s O", $projects_array->datee),
      );
}

header("Content-Type: text/xml;charset=iso-8859-1");

    echo '<?xml version="1.0" encoding="ISO-8859-1"?>
    <rss version="2.0">
    <channel>
    <link>http://www.mysite.com</link>
    <language>en-us</language>
    <copyright>Copyright (C) 2011 mimjobs.com</copyright>
    <pubDate>' . date("D, d M Y H:i:s O", time()) . '</pubDate>';
    foreach ($parr as $p ){

    echo '<item>';
    echo '<title>' . $p['title'] . '</title>';
    echo '<description>'.$p['description'].'</description>';
    echo '<link>' . $p['link'] . '</link>';
    echo '<pubDate>' . $date . '</pubDate>';
    echo '</item>';
    }
    echo '</channel>';
    echo '</rss>';
    ?>

1 Ответ

0 голосов
/ 27 ноября 2011

Проблема в том, что вы выводите специальные символы, такие как "<" и ">". Вам нужно либо обернуть вывод в htmlspecialchars (), либо просто заменить все вхождения «<» и «>» на &lt; и &gt; соответственно. Обратите внимание, что есть другие символы, которым может потребоваться этот тип обработки, поэтому htmlspecialchars () (или htmlentities ()) может быть вашим самым безопасным вариантом.

...