Проблема с simplexml_load_string в PHP с ответом Soap - PullRequest
0 голосов
/ 06 марта 2012
  • несколько правок *

Я использую SoapClient для работы с веб-службой, которая приводит к последовательности anyTypes.Я попытался использовать simplexml_load_string в ответе (возможно, неправильно), и это не помогло, в результате чего simplexml_load_string не был установлен.

Кроме этого, мой PHP-код, который вызывает веб-сервис: (здесь нет проблем)

$client->InvokeWorkflow( $params );

Затем я улавливаю ответ как $ response:

$ response = $ client -> __ getLastResponse ();

Когда я получаю var_dump $ response, я получаю:

string(1404) "XmlOut<Organisations xmlns="http://www.XXXXXXXX.net/Schemas/Provision/Organisations.xsd"><Organisation xmlns="http://www.XXXXXXXX.net/Schemas/Provision/Organisations.xsd"><DomainName>XXXXXXXXX.co.za</DomainName><Action>Suspend</Action><ActionType>Organisation</ActionType><InternalReference>1234</InternalReference><StatusInfo><Status>Error</Status><Error><Field> (Validate 1.0.0.0): DomainName</Field><ErrorMessage>The domain is already suspended</ErrorMessage></Error></StatusInfo></Organisation></Organisations>statustruestatusMessagetaskStartIda0c5ce73-1915-4695-a50c-f05b431f8a14" 

Вы заметите XmlOut, за которым следует строка XML, за которой следует текст, начинающийся с statustruestatusMessage.

Этот ответ на самом деле представляет собой набор anyTypes.Первый - «XmlOut», второй - вся строка, выглядящая в формате XML, за которой следуют слова «status», «true», «statusMessage», «», «taskStartId», «0c5ce73-1915-4695-a50c-f05b431f8a14"

Я пытаюсь получить значения для:

  • ErrorMessage (что означает "Домен уже приостановлен")
  • Status (что верно в приведенном выше примере)пример)

1 Ответ

0 голосов
/ 06 марта 2012

Предполагая, что вы используете PHP-класс SoapClient, вам не нужно загружать ответ как строку.

Просто используйте переменную $ response. Это уже объект PHP.

попробовать

var_dump($response);
...