xml информация для php (веб-сервис)

1

Я использую php для получения данных из webservice. У меня есть этот код:

try 
{ 
    $wsdl_url = 'https://xxx';
    $client = new SOAPClient($wsdl_url); 
    $params = array(
        'Code' => '1111', 
        'Name' => 'Marcos', 
        'Client' => '009462'
    );
    $return = $client->GetData($params); 

    print_r($return); 
} 
catch (Exception $e) 
{ 
    echo "Exception occured: " . $e;
}

Теперь у меня есть xml с параметрами. Пример:

<san:GetData>
<san:objData xsi:type="PricesData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://">
    <san:Code>7</san:Code>
    <san:Client>999999</san:Client>

    <san:Data>
        <san:Fact>CF</san:Fact>
        <san:Fact2>CF</san:Fact2>
    </san:Data>
    <san:DataProduct>
        <san:Code>0202</san:Code>
        <san:PersonalData>
          <san:Name>00030</san:Name>
          <san:Company>00045</san:Company>
        </san:PersonalData>
    </san:DataProduct>
</san:objData>

как я могу это сделать, чтобы передать эти параметры для php-массива? потому что у него есть данные в "категории", и я не знаю, как ими манипулировать.

Благодарю.

  • 0
    Если я правильно понимаю, это XML ответ веб-службы. SOAPClient должен был преобразовать это в надлежащие типы PHP в соответствии с WSDL.
  • 0
    Мне нужно знать, как передать параметры должны быть в категориях. один под другим? Пример: $ params = array ('Code' => '1111', 'Cliente' => 'Marcos', 'Fact' => '009462', 'Fact2' => '009462', 'Code' => '009462 '); Последний код находится в DataProduct. Как я отправляю?
Показать ещё 4 комментария
Теги:
soap
soapui
web-services

1 ответ

0

Чтобы представить массив в запросе SOAP, в качестве входа для SOAPClient следует использовать индексированный массив вложенных ассоциативных массивов. Клавиши массива должны соответствовать именам элементов, объявленным в WSDL. См. Примеры в этом сообщении.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню