如何处理'simplexml_load_string'错误?

时间:2016-11-14 09:11:52

标签: php xml

我希望处理一种情况,即我尝试检索的XML文件尚未就绪或不可用。

我正在使用:

 $object = simplexml_load_string($file);

有时,我收到以下错误:

'Start tag expected, '<' not found in etc...'

我尝试了以下操作,但它不起作用。

 if($object === false){
 // code here
}

1 个答案:

答案 0 :(得分:0)

如果出现错误,

simplexml_load_string可以返回false。它也可以发出警告。

来自manual

  

返回类SimpleXMLElement的对象,其属性包含xml文档中保存的数据,如果失败则返回FALSE。

     

为XML数据中发现的每个错误生成E_WARNING错误消息。

     

使用libxml_use_internal_errors()来抑制所有XML错误,然后使用libxml_get_errors()来迭代它们。

// suppress warnings so we can handle them ourselves
libxml_use_internal_errors(true);

$object = simplexml_load_string($file);

if ($object === false) {
    // oh no
    $errors = libxml_get_errors();
    // do something with them
    print_r($errors);
    // really you'll want to loop over them and handle them as necessary for your needs
}

有关libxml_get_errors here的更多详情。