【问题标题】:xml info to php (webservice)xml 信息到 php (webservice)
【发布时间】:2015-11-13 14:11:00
【问题描述】:

我使用 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 数组?因为它将数据分为“类别”,我不知道如何操作它们。

谢谢。

【问题讨论】:

  • 如果我理解正确,那些 XML 是 Web 服务响应。 SOAPClient 应该已根据 WSDL 将其转换为正确的 PHP 类型。
  • 我需要知道如何传递参数必须在类别之内。一个低于另一个?示例: $params = array( 'Code' => '1111', 'Cliente' => 'Marcos', 'Fact' => '009462', 'Fact2' => '009462', 'Code' => '009462 ');最后一个代码在 DataProduct 中。我如何发送?
  • 我必须将值发送到 Web 服务才能得到答案。
  • 完美,它将一个数组转换成另一个数组。谢谢!,我试试。

标签: php xml web-services soap soapui


【解决方案1】:

为了在 SOAP 请求中表示一个数组,嵌套关联数组的索引数组应该用作 SOAPClient 的输入。数组键应该对应于 WSDL 中声明的元素名称。请参阅post 中的示例。

【讨论】:

    猜你喜欢
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多