2009-09-28 102 views
0
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; 

?> 

回答

0

确保您的PHP文件开始时没有杂乱的BOM。当保存为UTF-8格式时,Windows上的一些(愚蠢,破损的)编辑器会将UTF-8编码的材料清单放到文件的开头。这是毫无意义的(因为UTF-8没有字节顺序问题)并且不合需要(因为它会破坏与面向字节处理工具的兼容性)。

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

如果这是发生了什么事,通过保存您的PHP文件作为“西方”(CP1252)编码解决它,或者寻找一个“UTF-8无BOM”编码救下。

0

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

+0

我在我的localhost pc,firefox中运行它...但它出来错误。 – 2009-09-28 10:09:39

0

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