【问题标题】:Parsing rss XML error: not well-formed解析 rss XML 错误:格式不正确
【发布时间】:2011-11-27 02:35:43
【问题描述】:

我正在尝试为我的网站构建一个 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>';
    ?>

【问题讨论】:

    标签: php xml rss


    【解决方案1】:

    问题是您正在回显特殊字符,例如“”。您需要将输出包装在 htmlspecialchars() 中,或者只需将所有出现的“”分别替换为 &amp;lt; 和 &amp;gt;。请注意,还有其他字符可能需要进行此类处理,因此 htmlspecialchars()(或 htmlentities())可能是您最安全的选择。

    【讨论】:

    • 我仍然收到此错误,即使我从维基百科 xml 页面复制干净的 xml 代码,我仍然会收到此错误!页面中的所有 php 代码都可以正常工作
    • 这可能是因为您使用了多个 echo 语句,而不仅仅是一个。我在这里猜测,但尝试将所有文​​本分配给一个字符串变量,然后在构建后回显该字符串(换句话说,创建一个变量,例如 $mystring = "" ,然后将所有“echo”语句替换为“$ mystring .=" 构建字符串,最后你可以做 "echo $mystring";
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多