PHP中用simpleXML解析XML文档,为什么总出错?
xml文档是一个自动生成的东西。我用simpleXML去解析他,但总是不一定在什么位置就会出错。代码是这样:$xmld=newSimpleXMLElement($xml)...
xml文档是一个自动生成的东西。我用simpleXML去解析他,但总是不一定在什么位置就会出错。
代码是这样:$xmld = new SimpleXMLElement($xml);
错误是这样的:
Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in D:\Apache\htdocs\extra.php:74
Stack trace:
#0 D:\Apache\htdocs\extra.php(74): SimpleXMLElement->__construct('')
#1 {main}
thrown in D:\Apache\htdocs\extra.php on line 74
这会是什么原因造成的呢?XML文档生成的不正确吗?
谢谢你~
我这里的的$xml就是通过file_get_contents(xml文件路径)获得的字符串,应该符合你说的要求吧?因为我在批量处理一些xml,有成功解析的,但是总是在进行到一定数量的时候出现这个错误
多谢专家~因为生成xml的那个程序是买来的,而且单个测试都没问题,只要一放进我的循环里就会出现这样的错误。可我也不能确定是哪一方的问题。
我又看了下,我是用@file_get_content来获得的xml,我把@去掉之后,出现的错误就应该是file_get_contents的错误了:Warning: file_get_contents(http://localhost:8081/newindex/GetUrl?lietu_uri=http://sound.zol.com.cn/subcate_223.html) [function.file-get-contents]: failed to open stream: HTTP request failed! in D:\Apache\htdocs\extra.php on line 74
=========
回sunnyPower:因为我是调用来的xml,而单独调用得到的这个xml没有问题。我怀疑是不是因为file_get_contents就没给抓过来呢?
这个问题在这里有补充~麻烦高手帮个忙啦
http://zhidao.baidu.com/question/96267985.html 展开
代码是这样:$xmld = new SimpleXMLElement($xml);
错误是这样的:
Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in D:\Apache\htdocs\extra.php:74
Stack trace:
#0 D:\Apache\htdocs\extra.php(74): SimpleXMLElement->__construct('')
#1 {main}
thrown in D:\Apache\htdocs\extra.php on line 74
这会是什么原因造成的呢?XML文档生成的不正确吗?
谢谢你~
我这里的的$xml就是通过file_get_contents(xml文件路径)获得的字符串,应该符合你说的要求吧?因为我在批量处理一些xml,有成功解析的,但是总是在进行到一定数量的时候出现这个错误
多谢专家~因为生成xml的那个程序是买来的,而且单个测试都没问题,只要一放进我的循环里就会出现这样的错误。可我也不能确定是哪一方的问题。
我又看了下,我是用@file_get_content来获得的xml,我把@去掉之后,出现的错误就应该是file_get_contents的错误了:Warning: file_get_contents(http://localhost:8081/newindex/GetUrl?lietu_uri=http://sound.zol.com.cn/subcate_223.html) [function.file-get-contents]: failed to open stream: HTTP request failed! in D:\Apache\htdocs\extra.php on line 74
=========
回sunnyPower:因为我是调用来的xml,而单独调用得到的这个xml没有问题。我怀疑是不是因为file_get_contents就没给抓过来呢?
这个问题在这里有补充~麻烦高手帮个忙啦
http://zhidao.baidu.com/question/96267985.html 展开
展开全部
你说的“而且单个测试都没问题”只是抽样测试,并不是测试全部。应该有至少一个XML格式是不正确的。如果你加了我的代码,应该会输出这个不正确的XML的内容。你把这个内容贴出来给你看看,没有什么机密吧?如果可以的话,加百度HI。账号:everalan
你加我的代码后,有执行到die($xml)这一行吗?有的话把输出的XML内容发过来帮你分析一下
应该是XML本身的格式就不正确,自然解析失败
try{
$xmld = new SimpleXMLElement($xml);
}catch(Exception $e){
die($xml);
}
这样出错的时候就能知道那个XML是什么内容就知道哪里错了
你加我的代码后,有执行到die($xml)这一行吗?有的话把输出的XML内容发过来帮你分析一下
应该是XML本身的格式就不正确,自然解析失败
try{
$xmld = new SimpleXMLElement($xml);
}catch(Exception $e){
die($xml);
}
这样出错的时候就能知道那个XML是什么内容就知道哪里错了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询