По этому запросу формируется 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
5.08.2016 - 19:44
$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
Цитата (Игорь_Vasinsky @ 5.08.2016 - 15:44) |
$items не является массивом
древо бы показал бы |
Не совсем понимаю где нужно указать дерево? Просто я в XML первый раз как полез - опыта ноль. Смотрю примеры в Инете - там везде структура XML-файлов простая и понятная и с теми файлами у меня все работает, а у меня всякие всякие DataTable, xs, diffgr ...
XPath'ом достань:
$items = simplexml_load_string($data);
foreach($items->xpath('//DocumentElement/t') as $item) {
echo $item->name."<br>";
}
_____________
Чатик в телеге
Цитата (brevis @ 5.08.2016 - 16:07) |
XPath'ом достань:
$items = simplexml_load_string($data); foreach($items->xpath('//DocumentElement/t') as $item) { echo $item->name."<br>"; } |
Спасибо большое! Полдня бился, нигде в описаниях не видел этого xpath-а. Все заработало как надо!!!