Intereting Posts
Класс «App \ Providers \ AppServiceProvider» не найден как остановить множественный вход пользователя с тем же адресом электронной почты и паролем, как только пользователь уже зарегистрировался Как обрабатывать сложную форму с несколькими моделями и табличный ввод в yii Google Analytics _trackEvent не работает с XHTML? PHP-скрипт работает только на локальном хосте, а не на Amazon? Выполнение нескольких SQL-запросов в одном выражении с помощью PHP Любые ошибки с этим регулярным выражением, которые соответствуют амперсандам, которые еще не закодированы Обнаруживать теги HTML в строке Удалите необходимость записи index.php на Yii Как вызвать исполняемый банку из php с аргументом, переданным основному методу Переопределить функцию php по умолчанию? (Eval) PHP Поиск многомерного ассоциативного массива Ошибка: вызов функции-члена get () для не-объекта Проблема php с русским языком CakePHP 3 Сохранение BelongsToMany Association Неизвестный тип "" Ошибка

Как получить значения элементов xml?

У меня есть некоторые XML-данные, и я пытаюсь получить доступ к некоторым элементам. Структура данных приведена ниже (с использованием print_r ($ data)). Я могу получить $data->{'parent'}->title , он работает, но если я попытаюсь получить значение href, используя $data->{'parent'}->link[0]->{'@attributes'}->href .. он не работает .. любые идеи?

благодаря

 SimpleXMLElement Object ( [@attributes] => Array ( [children] => 29 [modules] => 0 ) [title] => Test title [link] => Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [href] => data.php?id=2322 [rel] => self [type] => application/xml ) ) [1] => SimpleXMLElement Object ( [@attributes] => Array ( [href] => data.php?id=2342 [rel] => alternate [type] => text/html ) ) ) [parent] => SimpleXMLElement Object ( [@attributes] => Array ( [children] => 6 [modules] => 0 ) [title] => Top [link] => Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [href] => /data.php?id=5763 [rel] => self [type] => application/xml ) ) [1] => SimpleXMLElement Object ( [@attributes] => Array ( [href] => /data.php?id=2342 [rel] => alternate [type] => text/html ) ) ) ) 

)

Проверьте доступ к @attribute из SimpleXML , особенно комментарий об var_dump вывода var_dump ( print_r ) объектов SimpleXML.

Тем не менее, IIRC в вашем примере должно работать следующее:

 $data->{'parent'}->link[0]['href'] 

(То есть к атрибутам можно получить доступ с использованием стандартного обозначения массива – это определенно работает с отдельными элементами, не уверен, работает ли он с дополнительным индексом в коллекции элементов.)

Не используйте print_r () для проверки элемента SimpleXMLElement. Вместо этого просто посмотрите на XML. Доступ к детям осуществляется с использованием нотации объекта ->name и атрибуты, с помощью нотации массива ['name'] .

В вашем случае я предполагаю, что правильным способом доступа к этому атрибуту будет

 $data->parent->link[0]['href']