Строка возврата сервера мыла - PullRequest
0 голосов
/ 22 февраля 2011

Когда я отправляю запрос методом __doRequest (xml) по возвращении с мыльного сервера, я получаю строку

string(490) "
0Message0000
"

, когда я передаю массив с помощью __soapCall, я получаю именно то, что хочу, объект xml

object(stdClass)#2 (2) {
  ["Headers"]=>
  object(stdClass)#3 (2) {
    ["Code"]=>
    int(0)
    ["Message"]=>
    string(7) "Message"
  }
  ["Item"]=>
  object(stdClass)#4 (9) {
    ["LocalID"]=>
    int(991)
    ["ItemID"]=>
    int(0)
    ["SItemID"]=>
    int(0)
    ["UOM"]=>
    string(3) "UOM"
    ["ItemName"]=>
    string(8) "ItemName"
    ["ItemDescription"]=>
    string(15) "ItemDescription"
    ["Local"]=>
    string(5) "Local"
    ["Synonyms"]=>
    object(stdClass)#5 (1) {
      ["Synonym"]=>
      object(stdClass)#6 (2) {
        ["SynonymValue"]=>
        string(12) "SynonymValue"
        ["Contractor"]=>
        int(0)
      }
    }
    ["Properites"]=>
    object(stdClass)#7 (1) {
      ["Property"]=>
      object(stdClass)#8 (2) {
        ["PropertyKey"]=>
        string(11) "PropertyKey"
        ["PropertyValue"]=>
        string(13) "PropertyValue"
      }
    }
  }
}

Мой метод сервера для этого запроса:

public function GetItemData($parametersIn) {
    srand((double) microtime() * 1234567);
    $xml = 'XML'; // my response in xml
    $parametersOut = simplexml_load_string($xml);
    return $parametersOut;
}

Почему, когда я использую __doRequest, я получаю эту странную строку?как я могу преобразовать его в массив или объект?

Ответы [ 2 ]

1 голос
/ 12 апреля 2011

Вы просматриваете вывод в браузере, который «скрывает» теги XML. Используйте «просмотр источника» на странице, чтобы увидеть, что там на самом деле.

0 голосов
/ 07 октября 2011

В качестве альтернативы, как насчет того, что «XML» - это не xml, а «XML».

Это означает, что simplexml_load_string () не будет возвращать XML.

...