RSS Feed XML错误 - 有什么不对吗?

时间:2009-09-28 09:46:12

标签: xml rss feed

XML Parsing Error: no element found
Location: http://localhost/rss/
Line Number 1, Column 1:

但是,当我将xml粘贴到http://validator.w3.org/feed/check.cgi时,它会说没有格式化错误。

以下完整代码:

的index.php

<?php
    header("Content-Type: application/xml; charset=ISO-8859-1");


$details = '<?xml version="1.0" encoding="ISO-8859-1" ?>
            <rss version="2.0">
                <channel>
                            <title>hehe</title>
                            <link>http://www.google.com</link>
                            <description>gaga</description>
                </channel>
            </rss>
            ';
echo $details;

?>

3 个答案:

答案 0 :(得分:0)

谁在报告解析错误?我把代码放在我的机器上,它按预期工作。 Firefox要求订阅Feed。

答案 1 :(得分:0)

您必须非常小心,确保在XML声明之前没有换行符或空格。即使是单个换行也会导致问题。

答案 2 :(得分:0)

确保在PHP文件的开头没有杂散BOM。当保存为UTF-8时,Windows上的某些(愚蠢的,破碎的)编辑器会将UTF-8编码的BOM丢弃到文件的开头。这是毫无意义的(因为UTF-8没有字节顺序问题)并且不合需要(因为它会破坏与面向字节的处理工具的兼容性)。

由于您将输出作为ISO-8859-1提供,因此开始时任何UTF-8编码的BOM都将成为8859-1序列。对于XML,这将是根元素之外的非空白字符数据,这是不允许的。

如果发生这种情况,请通过将PHP文件保存为“Western”(cp1252)编码来修复它,或者查找“无BOM的UTF-8”编码以保存。