需要 XML 解析器错误开始标记
Posted
技术标签:
【中文标题】需要 XML 解析器错误开始标记【英文标题】:XML Parser Error Start Tag Expected 【发布时间】:2012-08-17 02:16:00 【问题描述】:function retrieveProfile()
$url = "http://steamcommunity.com/profiles/$this->steamID64/?xml=1";
$profileData = simplexml_load_string($url);
if(!empty($profileData->error)) return NULL;
$this->friendlyName = (string) $profileData->steamID;
警告:simplexml_load_string() [function.simplexml-load-string]:实体:第 1 行:解析器错误:需要开始标记,未找到“
警告:simplexml_load_string() [function.simplexml-load-string]:http://steamcommunity.com/profiles/76561197991676121/?xml=1
警告:simplexml_load_string() [function.simplexml-load-string]:^
这是 XML 文件:
http://steamcommunity.com/profiles/76561197991676121/?xml=1
我不知道为什么它不起作用,是的,它有 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
标题!
也试过$profileData = new SimpleXMLElement(file_get_contents($url))
,但我得到了相同的结果。
为什么会这样?我该如何解决?我正在搜索 3 个小时,但只看到对我没有帮助的答案。 错误:http://img824.imageshack.us/img824/9464/errorszz.png
EDIT1:simplexml_load_string 是我的错误之一,但现在我遇到了更多关于 simplexml_load_file 的错误 - 告诉我文档是空的...(不是真的!)
【问题讨论】:
【参考方案1】:您正在加载该 URL 作为您的 XML 源。你应该有:
$profileData = simplexml_load_file($url);
【讨论】:
现在我有更多错误!第 20 行的 /home/a3184184/public_html/openid/includes/SteamAPI.class.php 中的文档为空 + 其他! img824.imageshack.us/img824/9464/errorszz.png @virusbogdan 第 20 行是什么?我尝试用你的代码解析http://steamcommunity.com/profiles/76561197991676121/?xml=1
,它工作正常。
我知道它工作正常,但不适合我。第 20 行:$profileData = $profileData = simplexml_load_file($url);
可以打印之前的$url
吗? echo $url;
并检查该值是否符合您的预期。你能做一个$data = file_get_contents($url)
然后回显$data
吗?你得到文件的内容了吗?
$url 是正确的,但 $data 看起来是空的......有趣。怎么是空的?我确实回显了“[”。 $数据。 "]";并返回 []【参考方案2】:
网址已从 steamcommunity.com/profiles/76561197991676121/?xml=1 更改为 http://steamcommunity.com/id/virusbogdan/?xml=1 。 显然,第一个链接返回 null,所以出现了错误。问题解决了!
【讨论】:
不那么明显。file_get_contents()
应该遵循重定向,并且在我测试它时确实如此。可能是 PHP 问题:bugs.php.net/bug.php?id=53018。但是......任何适合你的东西。
对我的主机来说很明显*。现在我需要找出如何获取该重定向链接...有什么想法吗?
警告:simplexml_load_file() [function.simplexml-load-file]:I/O 警告:无法加载外部实体“” - 返回空链接..
如果不起作用,请使用get_headers()
并访问Location:
标头。以上是关于需要 XML 解析器错误开始标记的主要内容,如果未能解决你的问题,请参考以下文章