Доступ к определенным свойствам объекта SimpleXMLElement
Когда я 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]
, но он просто выводит то же самое (т.Е. Последний фрагмент кода, который я опубликовал).
1 answers
Представление, которое вы получаете при использовании print_r
или var_dump
на SimpleXMLElement
, имеет очень мало общего с тем, как оно структурировано внутренне. Например, нет никакого свойства @attributes
, к которому вы могли бы получить доступ с помощью $element['@attributes']['uri']
. Ты просто делаешь $element['uri']
Просто так оно и есть. SimpleXmlElement
объекты ведут себя по-разному. Убедитесь, что вы прочитали примеры в руководстве по PHP, прежде чем использовать SimpleXML:
К чтобы понять его реализацию в деталях, вам нужно будет взглянуть на исходный код:
Чтобы напечатать $xmlObject->result->message
, вы просто делаете echo $xmlObject->result->message
. Это приведет к автоматической передаче SimpleXmlElement
в строку.