如何生成以下SOAP XML请求?

时间:2015-09-11 19:38:09

标签: php xml soap parameters

我正在使用的SOAP API需要格式化的请求XML,如下所示:

<SOAP-ENV:Body>
    <ns1:functionName/>
        <UserID>WEB</UserID>
        <Attribute>
            <ID>83</ID>
            <Value>34343</Value>
        </Attribute>
        <Attribute>
            <ID>84</ID>
            <Value>45343</Value>
        </Attribute>
</SOAP-ENV:Body>

我在StackOverflow上已经完成了几乎所有“多元素”相关的问题,但仍然无法弄明白。

以下是我正在尝试的内容:

$args = new ArrayObject();
$args->UserID = WEB;

$Attribute = new stdClass();
$Attribute->ID = 83;
$Attribute->Value = 34343;
$args->append(new SoapParam($Attribute, 'Attribute'));

$Attribute = new stdClass();
$Attribute->ID = 84;
$Attribute->Value = 45343;
$args->append(new SoapParam($Attribute, 'Attribute'));

$soapClient->functionName($args);

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

我建议你使用WSDL到php生成器,因为你将处理与所需参数和操作匹配的抽象类,这样你就不必弄清楚正确的语法,它将自动完成。生成包。

两台发电机:

祝你好运

答案 1 :(得分:0)

最后设法搞清楚了。希望以下代码可以帮助某人:

$args = array();
$args[] = new SoapVar('WEB', XSD_STRING, null, null, 'UserID');

$obj = new stdClass();
$obj->ID = 83;
$obj->Value = 34343;
$args[] = new SoapVar($obj, SOAP_ENC_OBJECT, null, null, 'Attribute');

$obj = new stdClass();
$obj->ID = 84;
$obj->Value = 45343;
$args[] = new SoapVar($obj, SOAP_ENC_OBJECT, null, null, 'Attribute');

$soapClient->functionName(new SoapVar($args, SOAP_ENC_OBJECT));