我试图使用simplexml_load_string()
函数将GuzzleHTTP'PSR7'Response
解析为SimpleXMLElement
对象。我在这里面临的是,我得到了随机异常,它说:
实体:第1行:解析器错误:期望开始标记,'<'未找到
我说的随机是指一次成功通过,一次失败。
您对simplexml_load_string()
输入的建议是什么/如何修复异常?
$xml = simplexml_load_string((string)$response->getBody());
函数simplexml_load_string
需要一个字符串作为包含格式良好的XML的第一个参数。如果没有提供这样的字符串,就不要指望函数能工作。
在这种情况下,处理错误情况就可以了:如果字符串不能被解析为XML,函数将返回false
。php手册有整整一页是关于这个主题的:
- 处理XML错误(SimpleXML>示例)
我们还应该在现场有Q&A材料,例如:
- simplexml错误处理php (Aug 2009)
- 如何关闭simpleXML对畸形数据?(2009年11月)