@vit451

Почему возникает ошибка DOMDocument::loadXML(): Opening and ending tag mismatch: если xml валидный?

Добрый день.

Я не программист.

Есть сайт, на сайте работает отображение погоды.
Недавно это работать перестало.

В результате разбора выяснил, что погода берется из страницы xml.meteoservice.ru/export/gismeteo/point/146.xml
Эта страница загружается и затем парсится
При парсинге идет ошибка
Error while parsing data for "xml.meteoservice.ru/export/gismeteo/point/146.xml"
DOMDocument::loadXML(): Opening and ending tag mismatch: hr line 5 and body in Entity, line: 6

Вот кусок кода , где идет прерывание
$url = vsprintf('http://xml.meteoservice.ru/export/gismeteo/point/%s.xml', array($idCity));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);


try {
$dom = new DOMDocument();
$dom->strictErrorChecking = false;
$dom->loadXML($data);
$xml = simplexml_import_dom($dom);
} catch (Exception $e) {
print "Error while parsing data for \"{$url}\"\r\n";
print $e->getMessage() . "\r\n";
return false;
}

В результате гугления на тему DOMDocument::loadXML(): Opening and ending tag mismatch выяснилось , что это происходит если xml не валидный

Если содержимое страницы https://www.meteoservice.ru/export/gismeteo/point/... скопировать в xml валидатор и проверить - то ошибок нет.

Куда копать дальше - непонятно. Прошу подсказать, что не так и почему возникает ошибка.
  • Вопрос задан
  • 1941 просмотр
Решения вопроса 1
@krypt3r
Проверьте переменную $data, действительно ли приходит валидный XML. Проверьте, не возвращает ли curl ошибки
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
25 апр. 2024, в 12:23
2500 руб./за проект
25 апр. 2024, в 12:21
10000 руб./за проект