-
Php. Ошибка «String could not be parsed as xml». XML-валидатор
При разборе xml-файла, в случае его неправильной структуры может появится ошибкa «String could not be parsed as xml». Эта короткая заметка о том, с чего начать в случае возникновения указаных выше неприятностей. Итак, суть ошибки в том, что файл, который Вы пытаетесь обработать не соответствует нужному формату для XML-файла. Так как файлы могут быть огромных…
-
Php. Как работать с XML-файлами? Часть 2.
Работа с XML — частая и привычная задача, которая никогда не должна вызывать затруднения. Разве что не более 5 минут, чтобы найти доку с примерами и освежить все в памяти. Простой пример обращения к свойству XML-объекта мы рассмотрели ранее. Сейчас посмотрим, как работать с вложенными ветками. $xml = simplexml_load_string( $xmlData ) ; $data = $xml->shop->offers->offer…
-
Php. Как работать с XML-файлами? Часть 1.
Работа с XML — частая и привычная задача, которая никогда не должна вызывать затруднения. Разве что не более 5 минут, чтобы найти доку с примерами и освежить все в памяти. Вариант подобной статьи хочу предложить, т.к. буквально пару часов назад писал парсер прайса для своего магазина интимны товаров. Итак, удобнее всего работать с XML при…
-
Yii2. Как отдать данные в другом формате (json, xml…)?
Работая с Yii, особенно при написании различных API, часто возникает необходимость отдать данные в другом формате. Например, JSON или XML. Для этого в yii2 есть предусмотренные инструменты. Укажите \Yii::$app->response->format перед return и фреймворк сам определит, в каком виде следует отдавать в поток данные. Например, чтобы беззаботно отдать JSON-массив, просто выполните следующий код: public function actionIndex()…
-
Php. Call to undefined method DOMAttr::setAttribute()
Рассмотрим пример решения простой ошибки, которая очень часто встречается при генерации, например, XML-файлов. Ошибка в том, что php не позволяет на лету, как это очень привычно и модно сейчас, создавать ветки. Т.е. следующий код НЕ будет работать: $node = $xmlDoc->createElement(«Port», $serv->STMPPort)->setAttribute(«type»,»int») ; В то же время следующий код отлично отработает: $node = $xml->createElement(«name», ‘onfor’) ;…