嗨我是使用Soap的新手,但一切都很顺利,我已经使用PHP soap-client编写了一个脚本,并且所有内容都远离一个具有属性的标记,我可以找到一种方法在调用服务之前在$ params列表中传递此内容。
我像这样建造参数: - (例外)
'Goods' => array(
'Description' => '$Description','Quantity' => '$qty');
但是我需要XML: -
<Goods Type="EGoods">
<Description>Test</Description>
<Quantity>1</Quantity>
</Goods>
注意类型=&#34; EGoods&#34;在商品标签上,我如何在php中修改我的数组来解释这个属性?
当我按原样提交soap请求时,我收到的错误是货物不能为空或空。
感谢您的帮助。
答案 0 :(得分:2)
在手册中进行了一些挖掘后,我设法找到了一个有效的解决方案:)
'Goods' => array('_' => '', 'Type'=>'EGoods',
'Description' => '$Description', 'Quantity' => '$qty');
可生产
<Goods Type="EGoods">
<Description>Test</Description>
<Quantity>1</Quantity>
</Goods>
此处找到解决方案PHP: SoapParam::SoapParam - Manual Comment 114146
我必须稍微修改它才能工作,如果你将我的数组结构与原始数组结构进行比较,你会看到我必须做出哪些更改。
保
答案 1 :(得分:0)
$var = new MessageHeaderSoapStruct;
$var->From = 'foo';
$var->To = 'bar';
$var->version = 1;
$namespace = 'http://xxx'; # Namespace of MessageHeader WSDL element
$MessageHeader = new SoapVar($var, SOAP_ENC_OBJECT, 'MessageHeader', $namespace);