PHP SOAP Request包含多个相同的标记

时间:2009-11-24 16:00:30

标签: php soap

好的,所以我有这个基于外部SOAP的Web服务和PHP SoapClient。基本请求一切都很好,但我需要创建一个如下所示的参数集:

<DatasetList>
  <DatasetID>K0001</DatasetID>
  <DatasetID>K0002</DatasetID>
</DatasetList>

对于单个嵌套的DatasetID标记,我会这样做:

$req = array( "DatasetList" => array( "DatasetId" => "K0001" ));
$client->getWebserviceCall($req);

但我需要多个DatasetID标签......我尝试将DatasetID指定为数组,但我得到:

<DatasetList>
  <DatasetID>Array</DatasetID>
</DatasetList>

有人帮忙吗?

2 个答案:

答案 0 :(得分:2)

你是否以这种方式尝试过阵列?

$ req = array(“DatasetList”=&gt; array(“DatasetID”=&gt; array(“K0001”,“K0002));

答案 1 :(得分:2)

您只能通过手工编写具有相同标签的零件来实现此目的。但是,您可以在数组中定义其余值:

// Define multiple identical Tags for a part of the Array
$soap_var= new SoapVar('
  <DatasetID>1</DatasetID>
  <DatasetID>2</DatasetID>
';

// Define the other Values in the normal Way as an array
$req = array( 
  "DatasetList" => $soap_var,
  'value2'=>array('other'=>'values'
);