SOAP-ответ на XML с помощью SimpleXML - PullRequest
4 голосов
/ 05 мая 2010

Я пытаюсь преобразовать ответ SOAP в XML.

МЫЛО имеет оболочку и тело

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>

Когда я пытаюсь конвертировать

$responseXML = simplexml_load_string($string);

Я получаю

object(SimpleXMLElement)#20 (0) { } 

Если я отредактирую $string как soap:Envelope и soap:Body, я могу получить XML.

Что не так с :? Не удается получить XML.

Надеюсь, это понятно. Кто-нибудь?

Ответы [ 2 ]

9 голосов
/ 05 мая 2010

SOAP-сообщение является уже XML. Проблема в том, что у него есть пространства имен, поэтому вам нужно обращаться к нему по-другому. (Часть перед двоеточием является идентификатором пространства имен.)

Здесь (кэшированная копия Google) - это пример использования пространств имен с SimpleXML.
Здесь является конкретным примером для чтения сообщений SOAP.

1 голос
/ 05 мая 2010

SimpleXML требует специальной обработки для пространства имен XML ( ref. )

...