2012-04-18 2 views
1

У меня действительно нет идей с PHP SOAP-клиентом. Основная причина этого, вероятно, в том, что я не совсем понимаю, как SOAP и тем более работает PHP Soap-клиент.PHP SOAP, как создавать вложенные запросы

Мне нужно получить вложенные элементы (я надеюсь, что это правильный термин) от клиента Soap.

Вот пример я пытаюсь создать

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:hor="http://Horizon.ExternalServices" xmlns:hor1="http://Horizon.ExternalServices.AFS"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <tem:SomeFunction> 
     <tem:foobar> 
      <hor:Foo>lorem</hor:Foo> 
      <hor:Bar>ipsum</hor:Bar> 
     </tem:foobar> 
     <tem:bazbar> 
      <hor1:Foo>lorem</hor1:Foo> 
      <hor1:Bar>ipsum</hor1:Bar> 
      <!--Optional:--> 
     </tem:bazbar> 
     </tem:SomeFunction> 
    </soapenv:Body> 
</soapenv:Envelope> 

Моей первую попытку была просто положить всю структуру, ассоциированный массив (который всегда работал раньше), но с этими вложенным thingis это, кажется, нет идти.

Затем я попытался несколько разных методов создать следующую структуру с SoapVar и SoapParam, но поскольку я действительно не понимаю, как они работают большую часть времени, я получаю только запрос без чего-либо внутри тела.

Я читал документацию на PHP, wikipedia и w3schools. Я просто не понимаю понимания концепции.

Я бы действительно оценил, может ли кто-нибудь дать мне ссылку или что-нибудь, что объясняет, как работает Soap-клиент. Кроме того, примеры кода были бы значительно расширены.

+0

Обычно это работает. Отправьте свой код, чтобы он мог понять, что вы делаете неправильно. – hakre

ответ

0

Даже у меня была такая же проблема, а затем я начал использовать класс nusoap, так как легче передавать данные в формате ассоциативного массива, а класс строит xml на основе этого. Вы можете скачать его с here

+0

Я знаю о nuSOAP lib. Unfortunatellu, используя внешние библиотеки (по крайней мере те, которые остановили их разработку), сейчас не вариант. Но спасибо за подсказку. – sarte

Смежные вопросы