[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Парсинг XML
ppaull
По этому запросу формируется XML файл http://46.151.145.205:25004/?type=get_streets

Парсю его


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://46.151.145.205:25004/?type=get_streets');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
$items = simplexml_load_string($data);

Теперь нужно из элементов t извлечь вложенные name. Делаю так

$items = $items->t;
foreach ($items->item as $item) {
echo $item->name."<br>";
}

Ошибка "Invalid argument supplied for foreach()".

Кто-нибудь может написать в чем там проблема? Может дело в том, что в XML куча каких-то дополнительных элементов типа xs:schema?
Игорь_Vasinsky
$items не является массивом

древо бы показал бы

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
ppaull
Цитата (Игорь_Vasinsky @ 5.08.2016 - 15:44)
$items не является массивом

древо бы показал бы

Не совсем понимаю где нужно указать дерево? Просто я в XML первый раз как полез - опыта ноль. Смотрю примеры в Инете - там везде структура XML-файлов простая и понятная и с теми файлами у меня все работает, а у меня всякие всякие DataTable, xs, diffgr ...
brevis
XPath'ом достань:
$items = simplexml_load_string($data);
foreach($items->xpath('//DocumentElement/t') as $item) {
echo $item->name."<br>";
}


_____________
Чатик в телеге
ppaull
Цитата (brevis @ 5.08.2016 - 16:07)
XPath'ом достань:
$items = simplexml_load_string($data);
foreach($items->xpath('//DocumentElement/t') as $item) {
echo $item->name."<br>";
}

Спасибо большое! Полдня бился, нигде в описаниях не видел этого xpath-а. Все заработало как надо!!! smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.