XML 解析错误:XML 或文本声明不在实体的开头 位置:http://localhost:8080/APP/json/show_json.php 行 3,列 1: 请问这是怎么回事? 空格都删掉了。还是不好使,该怎么办?谢谢!
1 回答
问题的原因找到了 大致是这样的----分享给大家 (以备不时之需)
问题原因大体是:------->
如果一个XML声明(<?xml ... ?>) 出现在你的Feed文件中,它必须是该Feed文件中的第一个出现的,应该在任何空白(译者注,空格、空行)之前。不幸的是,WordPress中的插件、主题、配置文件等却很容易带有空行,这使得这个问题变得复杂起来。
解决方法-------->
PHP文件也会使用一个类似的记号:<?php ... ?>。最好将最后的 php ?> 从所有的PHP代码文件,如modules, includes中扔掉。这个结束符号在PHP中可要可不要(但是在XML中却必须要有),去掉这个标记可以避免在文件结尾出现不希望出现的空白,对防止出现类似问题有帮助。
检查你的 wp-rss2.php 和 wp-atom.php 文件,看看在 <? 和 ?> 标记之外是不是有空行。检查你的 wp-config.php 文件看看在 <? 和 ?> 标记之外是否有空行。检查你的主题中 functions.php 文件,看看在 <? 和 ?> 标记之外是否有空行。一个一个的禁用插件并检查Feed是否出错,直到确定导致问题的那个插件。
此时问题基本能够解决,如果不能解决请看看其他文件是否有空行。改完后可能需要清空浏览器缓存并刷新一会才能看到结果。
我认为对于我们普通用户,检查的重点应该是插件,而不是文件代码,除非你在这之前修改过文件代码。因为如果本来没有问题而突然出现了这样的状况,那 说明那些相关的代码不应该是有问题的,因为不管是WordPress文件、插件,还是主题,这都是经过检验的,一般不会出问题。所以,对于普通用户而不是 程序员来说,应该先检查你最近启用的插件,排除之后再针对其它的几条进行检查。
举报