RSS订阅XML错误 - 任何错误?
问题描述:
XML Parsing Error: no element found
Location: http://localhost/rss/
Line Number 1, Column 1:
然而,当我将XML粘贴到http://validator.w3.org/feed/check.cgi,它说没有格式错误。RSS订阅XML错误 - 任何错误?
完整的代码以低于:
的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;
?>
答
确保您的PHP文件开始时没有杂乱的BOM。当保存为UTF-8格式时,Windows上的一些(愚蠢,破损的)编辑器会将UTF-8编码的材料清单放到文件的开头。这是毫无意义的(因为UTF-8没有字节顺序问题)并且不合需要(因为它会破坏与面向字节处理工具的兼容性)。
由于您将输出作为ISO-8859-1提供,因此任何UTF-8编码的BOM在开始时都会变为8859-1序列
。对于XML,这将是根元素之外的非空白字符数据,这是不允许的。
如果这是发生了什么事,通过保存您的PHP文件作为“西方”(CP1252)编码解决它,或者寻找一个“UTF-8无BOM”编码救下。
答
谁报告了解析错误?我把代码放在我的机器上,它按预期工作。 Firefox要求订阅订阅源。
答
您必须非常小心,以确保在XML声明之前没有换行符或空格。即使是单行换行也会导致问题。
我在我的localhost pc,firefox中运行它...但它出来错误。 – 2009-09-28 10:09:39