Добрый день.
Я не программист.
Есть сайт, на сайте работает отображение погоды.
Недавно это работать перестало.
В результате разбора выяснил, что погода берется из страницы
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 валидатор и проверить - то ошибок нет.
Куда копать дальше - непонятно. Прошу подсказать, что не так и почему возникает ошибка.