网络服务向我返回此代码-
global $s;
global $params;
$s = new soapclient($conDetails['url'],array('wsdl'));
$params = new stdClass;
$paramsStr = '
<LoginInput>
<LoginRec Action="SuppAuthn" UserEmail="'.$email.'" UserPass="'.$password.'" />
</LoginInput>
';
$params->xmlRequest = $paramsStr;
$result = $s->__call("SubmitXmlString",array($params));
当我打印结果时,它会得到:
echo "<pre>".(var_dump($result,true))."</pre>";
object(stdClass)#3 (1) {
["SubmitXmlStringResult"]=> string(496)
"<LoginOutput>
<Login UsrId="XX" UsrName="Some Name" SessionId="10" supplierCode="2" supplierName="Supp name" supplierEmail=""/>
<Countries>
<country code="DE" name="Germany"/>
<country code="ES" name="Spain"/>
<country code="FR" name="France"/>
</Countries>
</LoginOutput>
" } bool(true)
如何获取结果的“ supplierCode”值?
答案 0 :(得分:0)
object(stdClass)#3 (1) {
["SubmitXmlStringResult"]=> string(496)
因此,您有一个对象,其属性名为SubmitXmlStringResult
,其中包含有效的XML string
。因此,您可以对该数据使用simplexml_load_string
。有了它之后,就可以看到supplierCode
是Login
元素的属性。因此,您可以通过以下方式获得该信息:
<?php
// Recreating your variable
$obj = new stdClass();
$obj->SubmitXmlStringResult =<<<ENDXML
<LoginOutput>
<Login UsrId="XX" UsrName="Some Name" SessionId="10" supplierCode="2" supplierName="Supp name" supplierEmail=""/>
<Countries>
<country code="DE" name="Germany"/>
<country code="ES" name="Spain"/>
<country code="FR" name="France"/>
</Countries>
</LoginOutput>
ENDXML;
// Load the XML from the object
$xml = simplexml_load_string($obj->SubmitXmlStringResult);
// Get supplierCode attribute from Login element
$supplierCode = $xml->Login->attributes()['supplierCode'];
答案 1 :(得分:0)
您只需要从类对象中获取XML
,并将其设置在变量中即可。然后,您需要创建一个XML
对象,然后可以按以下方式访问supplierCode
:
$xmlString = $result->SubmitXmlStringResult;
$xml = simplexml_load_string($xmlString);
echo $xml->Login[0]->attributes()->supplierCode;
希望对您有帮助!