Я использую класс PHP SOAPSERVER.php soapserver возвращает более читаемый ассоциативный массив
В ответ я посылаю ассоциативный массив PHP:
function getItems()
{
...
$items[] = Array("itemID" =>$itemID,"itemName"=>$itemName);
return $items;
}
возвращение SOAP выглядит так:
...
<Items>
<item type="Map">
<item>
<key type="string">
itemID
</key>
<value type="string">
17558
</value>
</item>
<item>
<key type="string">
itemName
</key>
<value type="string">
I-17558
</value>
</item>
</item>
</Items>
...
Такое возвращение довольно трудно анализировать для человека (с учетом большего массива). Предпочтительная форма будет выглядеть так:
...
<Items>
<item>
<itemID>17558</itemID>
<itemName>I-17558</itemName>
</item>
<item>
<itemID>17559</itemID>
<itemName>I-17559</itemName>
</item>
</Items>
...
ли такое SOAP вернуть возможно (не изменяя тип возвращаемого значения - массив)? Как?
Я только что начал с SOAP, и большинство учебных пособий показывают, как возвращать простые типы, такие как строка.
Почему вы хотите прочитать сообщения SOAP вообще? Обычно клиент преобразует его в любые родные структуры/типы, соответствующие данным ответа. – ThiefMaster
@ThiefMaster, я хочу разобрать SOAP-сообщение как XML, используя методы DOM. Это выглядит довольно беспорядочно с текущей структурой сообщений ответа. – user1463822
Ugh, используйте существующий клиент SOAP ... так или иначе, вот как выглядит SOAP. Вы не можете просто использовать другой формат. Это стандартизировано. – ThiefMaster