Задать вопрос
zed1cus
@zed1cus
Web developer

"Плавающая" ошибка парсинга XML?

Такой интересный баг.
При добавлении/обновлении/просмотре товара в PrestaShop через REST (Web Service) на этапе парсинга возвращаемых данных XML возникает ошибка с кодом 76 и сообщением "Unexpected end tag : p". Для разбора XML используется SimpleXML. Самое интересное, что ошибка не постоянная. Если взять этот XML, на котором "споткнулся" парсер и проверить в онлайн валидаторах, то данные оказываются полностью корректными. И даже, если повторно запустить добавление/обновление товара, то ни какой ошибки не будет. При каждой итерации может возникать до нескольких десятков таких ошибок (причем на разных товарах), а может и не возникнуть вовсе. Номер строки ошибки всегда разный и указывает на теги генерируемые CMS. Все текстовые данные находятся в структуре CDATA, управляющие символы с кода удаляются регуляркой.
Собственно вопрос. Каким способом возможно реализовать локализацию бага?
  • Вопрос задан
  • 417 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@heartdevil
плыву как воздушный шарик
Привет.

Попробуйте на отдельной тестовой странице позабирать xml и вообще его не обрабатывать никак. Просто сохраняйте где-нибудь. Это должен быть один и тот же товар, забранный несколько раз. Это нужно, чтобы точно определить валидность в пределах одного товара. 2) Сохраните несколько видов xml для нескольких товаров и тоже все их протестируйте на валидность.
Тут главное убедиться, что вы всегда получаете валидный xml.

Если там все хорошо, тогда переходите к парсеру. Прогоняйте все через него, но при этом отключив как можно больше функций удаления и очистки. Если и там все будет хорошо, тогда добавляйте по одной функции очистки/удаления или другие имеющиеся функции, постепенно локализуя проблему.

Не стоит себе или кому-то верить наслово). Истина таится в мелочах (с)))
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы