Доступ к некоторым свойствам объекта 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] Последний фрагмент кода, который я опубликовал).

Solutions Collecting From Web of "Доступ к некоторым свойствам объекта SimpleXMLElement"

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

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

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

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