@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 валидатор и проверить - то ошибок нет.

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

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

Войти через центр авторизации
Похожие вопросы
Ведисофт Екатеринбург
от 25 000 ₽
YCLIENTS Москва
от 200 000 до 350 000 ₽
Бюро Цифровых Технологий Санкт-Петербург
от 120 000 до 180 000 ₽
04 мая 2024, в 22:32
2000 руб./за проект
04 мая 2024, в 22:10
2001 руб./за проект
04 мая 2024, в 21:12
10000 руб./за проект