Intereting Posts
дублирование вставки данных в CodeIgniter Не удается открыть загруженные вложения из API Gmail. Рекурсивный многомерный массив UL LI to PHP Изменение размера iframe в соответствии с высотой содержимого в нем. Что означает «запись не удалась: нет места на устройстве» означает? Laravel 5.2 – Как выйти из системы на всех его устройствах Помощь в Windows-пути – PHP Загрузить – максимальное количество подключений для каждого пользователя? Как установить поле объекта, которое не существует в таблице, но существует в необработанном SQL как псевдоним? Php Shopping cart – Размер и длина для каждого количества продукта есть ли простой способ избежать создания всех папок PHP Date diff с разницей Как проверить, действительно ли адрес электронной почты действителен или действителен с помощью PHP Php Сессия и проблемы с сообщением на странице входа Операции с базами данных в Zend Framework: изолированы ли они?

Доступ к некоторым свойствам объекта SimpleXMLElement

Когда I print_r() объект SimpleXMLElement, на который ссылается переменная $xmlObject , я вижу следующую структуру:

 SimpleXMLElement Object ( [@attributes] => Array ( [uri] => /example ) [result] => SimpleXMLElement Object ( [message] => Record(s) added successfully [recorddetail] => Array ( [0] => SimpleXMLElement Object ... ) ) ) 

Обратите внимание, как выглядит свойство $xmlObject->result->message это просто строка. Однако, если я делаю print_r($xmlObject->result->message) , я получаю следующее:

 SimpleXMLElement Object ( [0] => Record(s) added successfully ) 

Поэтому в этот момент я смущен. Почему сообщение $xmlObject->result->message идентифицируется как экземпляр объекта SimpleXMLElement Object в этом случае, когда результат печати полного $xmlObject не предполагает этого?

И как мне получить доступ к этому значению? Я пробовал $xmlObject->result->message[0] , но он просто распечатывает то же самое (т. $xmlObject->result->message[0] Последний фрагмент кода, который я опубликовал).

Представление, которое вы получаете при использовании print_r или var_dump в SimpleXMLElement имеет очень мало общего с тем, как он структурирован внутри. Например, нет свойства @attributes вы можете получить доступ с помощью $element['@attributes']['uri'] . Вы просто делаете $element['uri']

Это просто так, как есть. Объекты SimpleXmlElement ведут себя по-разному. Перед использованием SimpleXml ознакомьтесь с примерами в Руководстве по PHP:

Чтобы понять реализацию в деталях, вам нужно будет посмотреть исходный код:

Чтобы напечатать сообщение $xmlObject->result->message вы просто выполняете echo $xmlObject->result->message . Это приведет к автоматическому SimpleXmlElement элемента SimpleXmlElement в строку.