Как пропустить неверный запрос HTTP/1.1 400

Я загружаю несколько файлов XML из веб-службы, которая иногда не удается.

Я загружаю все эти XML-файлы и затем отображаю их в один XML-файл с использованием PHP+simpleXML. Проблема заключается в том, что если один XML-файл не работает, то весь мой последний XML-файл облажается, потому что я получаю HTTP/1.1 400 Bad Request.

Есть ли способ пропустить эту ошибку? Я попробовал код ниже, но он не работает для меня:

$xmlDetails = simplexml_load_file($url, "SimpleXMLElement", LIBXML_NOERROR |  LIBXML_ERR_NONE | LIBXML_NOWARNING);

if ($xmlDetails)
{ here i manipulate the $xmlDetails }

1 ответ

Вы ожидаете, что XML вернется к успеху, верно? Поэтому проверьте ответ, чтобы увидеть, вернулось ли это.

$xmlDetails = simplexml_load_file($url, "SimpleXMLElement", LIBXML_NOERROR |  LIBXML_ERR_NONE | LIBXML_NOWARNING);

if ($xmlDetails && substr(trim($xmlDetails), 0, 4) == "<?xml"))
{ 
  // here i manipulate the $xmlDetails 
}

Не проверено, но может быть достаточно чего-то простого. Я бы порекомендовал так же, как один из комментариев, хотя. Отдельное извлечение xml и анализ его в два этапа.

Другие вопросы по тегам