Доступ к индивидуальному свойству из SimpleXMLElement Object

0

Прежде чем отмечать это как дубликат, обратите внимание, что я не смог найти ответ на мой конкретный случай.

У меня есть XML-ответ SOAP, который я храню в объекте, используя:

$ resultObj = SimpleXML_Load_String ($ xml);

если я печатаю_r объект, я получаю:

SimpleXMLElement Object
(
    [soap_Body] => SimpleXMLElement Object
        (
            [SubmitNewApplicationShortResponse] => SimpleXMLElement Object
                (
                    [SubmitNewApplicationShortResult] => SimpleXMLElement Object
                        (
                            [Errors] => SimpleXMLElement Object
                                (
                                    [@attributes] => Array
                                        (
                                            [IsError] => true
                                        )

                                    [ErrorDetails] => SimpleXMLElement Object
                                        (
                                            [ErrorDetail] => SimpleXMLElement Object
                                                (
                                                    [@attributes] => Array
                                                        (
                                                            [Code] => 209
                                                            [Message] => Client Reference already exists.
                                                        )

                                                )

                                        )

                                )

                            [Token] => 00000000-0000-0000-0000-000000000000
                            [ProposalID] => 0
                        )

                )

        )

)

Я могу получить доступ к токену, используя:

$token  = (string)$resultObj->soap_Body->SubmitNewApplicationShortResponse->SubmitNewApplicationShortResult->Token

Однако я не знаю, как получить доступ к свойствам кода и сообщения. Что это за "@атрибуты"?

EDIT: кажется, у меня была ошибка в моем коде, и @attributes следует игнорировать в объектах SimpleXML. Это работает, как указано @mark91:

print_r( (string) $resultObj->soap_Body->SubmitNewApplicationShortResponse->SubmitNewApplicationShortResult->Errors->ErrorDetails->ErrorDetail["Code"] );
Теги:
object
simplexml

1 ответ

1
Лучший ответ

Вы пытались это сделать?

 $resultObj->SubmitNewApplicationResponse->SubmitNewApplicationResult->Errors->ErrorDetails->ErrorDetail["Code"];
  • 0
    Я попробовал это сейчас, похоже, не работает.
  • 0
    Ты прав. Извините, я допустил ошибку при копировании и вставке вашего кода: soap_Body не прав, поэтому я правильно обновил свой ответ. Теперь это должно работать.
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню