Ошибка спецификации XML - после последнего обновления плагина ЯНДЕКС.МАРКЕТ
После последнего обновления ЯНДЕКС.МАРКЕТ плагина не пропускает прайс-лист. Маркет выдает следующие:
Вот еще прислали:
Ошибки при разборе файла:
Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: xmlParseStartTag: invalid element name (< ) (строка 1, столбец 2)
Сам файл такой:
Поддержка яндекс маркета разводит руками - говорят с виду все нормально. Уже всю голову сломал, не пойму что-за хрень.
4 ответа
Попробовал на дурака скопировать "<" из нижеследующей строки и заменить в первой строке. Загрузил в ручную. Все загрузка прошла без проблем. Тот-же самый файл без изменений скармливаю в ручную - ОШИБКА.
Вывод - косяк при формировании файла?
Продолжение истории:
Заходим в папку с плагином и в файле shopYandexmarketPluginRun.controller.php меняем первую строку на строку отсюда <?xml version="1.0" encoding="windows-1251"?>. В этой строке подставляем кодировку с {$this->encoding} вместо windows-1251.
Проверяем загрузку прайса по ссылке:

и опять получаем ту-же ошибку:Но вот в чем загвоздка, проверяем загрузку этого же файла скаченного на компьютер:
и вуаля:
Все подгружается без проблем.
В чем трабл-кто нибудь подскажет?
Проблема в том, что при автоматическом формировании файла присутствует посторонний вывод перед отдачей - первый символов. Чаще всего это отредактированный файл, в котором после редактирования в начале оказался BOM. Т.е. XML файл начинается не с тега <?xml а с этого самого символа.
Такая же проблема.
Файл формируется стандартным плагином Яндекс Маркет.
Ссылка не проходиит проверку:
Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: xmlParseStartTag: invalid element name (< ) (строка 1, столбец 2)
Как вылечить? Откуда BOM?
Спасибо.