SimpleXML кідальныя папярэджанні - як злавіць?

У мяне паўсталі некаторыя праблемы вызначэння таго, што адбываецца з simplexml_load_string() Я выкарыстоўваю наступны код, каб зрабіць некаторыя xml .... калі я запускаю гэты код я атрымліваю паведамленне пра памылку, як:

Message: simplexml_load_string() [function.simplexml-load-string]: Entity: line 94: parser error : Opening and ending tag mismatch: meta line 15 and head

Любыя ідэі аб тым, як я магу злавіць гэтыя папярэджанні? няма libxml_get_errors не ўплывае.

                $response = simplexml_load_string($response);
                var_dump($response);
                if (count(libxml_get_errors()) > 0) {
                    print_r(libxml_get_errors());
                }

                if (is_object($response)) { //returns true when warnings are thrown
                    //process response
                } else {
                    //record error
                }
0
Вы загружаеце недапушчальны файл .xml. Можа дэлегаваць задачу да хлопца, які забяспечвае яго?
дададзена аўтар FailedDev, крыніца

2 адказы

libxml_use_internal_errors(true);//!!!

$elem = simplexml_load_string($xml);
if($elem !== false)
{
   //Process xml structure here
}
else
{
    foreach(libxml_get_errors() as $error)
    {
        error_log('Error parsing xml file ' . $file . ': ' . $error->message);
    }
}
11
дададзена
Апрацоўка памылак яшчэ горш. Папярэджанне дае больш канкрэтныя паведамленні аб няправільным зыходным XML-часткі, чым апрацоўка памылак можа даць. Апошняе толькі паказаць слупок, радок, якую цяжка знайсці частка памылак, калі зыходны XML-файл ёсьць закадаваны ў луночное.
дададзена аўтар Scott Chu, крыніца
Гэты адказ не перашкаджае папярэджання, ён проста адлюстроўвае дадатковую інфармацыю пра памылкі. Каб пазбегнуць папярэджанняў, выкарыстоўвайце set_error_handler() , як у гэтым адказе: stackoverflow.com/a/17012247/204842
дададзена аўтар Russell G, крыніца

У маёй сітуацыі сэрвэры, які дзяліў xml змянілі іх НТТР HTTPS. З-за таго, што мы загружалі стары шлях XML-файл, які ў дадзеным выпадку быў «пашкоджаны». Менавіта таму ў нас была памылка.

XML-файлы выдатна загружаецца з-за таго, што я не заўважыў праблемы HTTPS (браўзэр рэдырэкт).

0
дададзена