Новичок
Покинул форум
Сообщений всего: 7
Дата рег-ции: Апр. 2013
Помог: 0 раз(а)
|
Доброго всем времени суток! Мне необходимо организовать поиск товара по каталогу OZON.ru. Для этого:
1. Сформировал и отправил запрос на сервер OZON.ru методом GET (параметр q не пуст):
PHP:
скопировать код в буфер обмена
$query = $_GET ["q"]; //Получаем строку для поиска методом GET $url = 'http://ozon.ru/webservice/webservice.asmx/SearchWebService?searchText='.$query.'&searchContext='; //URL запроса
2. Получил и обработал ответ в формате XML:
При этом, хотя переменная $xml не пуста, получаю пустой объект:
Пробовал очистить XML от HTML-тегов и символов CR, сохранить его как файл и потом открыть и распарсить:
PHP:
скопировать код в буфер обмена
$tmpDir = $_SERVER ['DOCUMENT_ROOT'].'/files/tmp/'; //Каталог для временных файлов на сервере //Убираем символы CR (0x0D) //Преобразуем все HTML-сущности в соответствующие символы //Заменяем теги <br> на символы LF (0x0A) //Удаляем теги <b></b> //Удаляем теги <li></li> //Удаляем теги <i></i> //Удаляем теги <p></p> //Создаём временный файл с уникальным именем //Сохраняем XML в файл //Открываем файл и парсим содержащийся в нём XML //Выводим структуру $xmlObj
При этом объект по-прежнему пуст, хотя файл не пуст и содержит XML, который был в переменной $xml.
Пример из документации при этом парсится нормально - такой код:
выводит мне такую структуру переменной $xmlObj, что говорит о том, что дело не в PHP-коде и не в правах доступа, а в самом обрабатываемом XML:
PHP:
скопировать код в буфер обмена
object(SimpleXMLElement)#1 (1) { ["movie"]=> object(SimpleXMLElement)#2 (5) { ["title"]=> string(38) "PHP: Появление Парсера" ["characters"]=> object(SimpleXMLElement)#3 (1) { ["character"]=> [0]=> object(SimpleXMLElement)#5 (2) { ["name"]=> string(9) "Ms. Coder" ["actor"]=> string(14) "Onlivia Actora" } [1]=> object(SimpleXMLElement)#6 (2) { ["name"]=> string(9) "Mr. Coder" ["actor"]=> string(9) "El ActУr" } } } ["plot"]=> string(301) " Таким образом, это язык. Это все равно язык программирования. Или это скриптовый язык? Все раскрывается в этом документальном фильме, похожем на фильм ужасов. " ["great-lines"]=> object(SimpleXMLElement)#4 (1) { ["line"]=> string(54) "PHP решает все мои проблемы в web" } ["rating"]=> [0]=> string(1) "7" [1]=> string(1) "5" } } }
Где может быть ошибка (имеется в виду сам обрабатываемый XML)? XML до чистки от HTML-тегов (raw.xml) и после неё (xml_vquV4U.xml) в заархивированном виде прилагаю. Второй файл переименовал (добавил расширение .xml), чтобы его можно было открыть не только под UNIX-подобными ОС, но и под виндой.
ОС: RFRemix 18. Веб-сервер: Apache 2.4.4. Версия PHP: 5.4.14. Права на каталог /var/www/html/files/tmp: хозяин: apache, группа: apache, rwxr-xr-x (755).
Скачать файл: XML.7zСкачан раз: 143(Отредактировано автором: 27 Апреля, 2013 - 11:44:37)
|