Php 如何从Soap请求中读取值
我正在与soapweb服务交互,我希望从Soap对象读取值。我总是遇到一个例外。见下文 样品皂Php 如何从Soap请求中读取值,php,xml,soap,Php,Xml,Soap,我正在与soapweb服务交互,我希望从Soap对象读取值。我总是遇到一个例外。见下文 样品皂 <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <c2b:C2BPaymentValidationRequest xmlns:c2
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<c2b:C2BPaymentValidationRequest xmlns:c2b="http://cps.huawei.com/cpsinterface/c2bpayment">
<TransID>3IN40005PY</TransID>
<TransTime>20160923143639</TransTime>
<TransAmount>3000</TransAmount>
<BusinessShortCode>10069</BusinessShortCode>
<MSISDN>86812530102</MSISDN>
<KYCInfo>
<KYCName>FirstName</KYCName>
<KYCValue>aaa</KYCValue>
</KYCInfo>
<KYCInfo>
<KYCName>MiddleName</KYCName>
<KYCValue>bbb</KYCValue>
</KYCInfo>
<KYCInfo>
<KYCName>LastName</KYCName>
<KYCValue>ccc</KYCValue>
</KYCInfo>
</c2b:C2BPaymentValidationRequest>
</soapenv:Body>
</soapenv:Envelope>
3IN40005PY
20160923143639
3000
10069
86812530102
名字
aaa
中间名
bbb
姓氏
ccc
我试着做一个物体
$xml=simplexml\u load\u string($response)或die(“错误:无法创建对象”)代码>
以便我可以读取以下值
$TransID=$xml->TransID代码>
$TransTime=$xml->TransTime代码>
$TransAmount=$xml->TransAmount代码>
但是它在这里失败了die(“错误:无法创建对象”)强>
或者更好的是,如何将soap请求更改为json并获取值?有人吗?您的代码中似乎缺少SOAP
$xml = simplexml_load_string($xml_data);
$xml->registerXPathNamespace('c2b', 'http://cps.huawei.com/cpsinterface/c2bpayment');
$response = $xml->xpath('//c2b:C2BPaymentValidationRequest') or die("Error: Cannot create object");
print_r($response);
输出:
Array
(
[0] => SimpleXMLElement Object
(
[TransID] => 3IN40005PY
[TransTime] => 20160923143639
[TransAmount] => 3000
[BusinessShortCode] => 10069
[MSISDN] => 86812530102
[KYCInfo] => Array
(
[0] => SimpleXMLElement Object
(
[KYCName] => FirstName
[KYCValue] => aaa
)
[1] => SimpleXMLElement Object
(
[KYCName] => MiddleName
[KYCValue] => bbb
)
[2] => SimpleXMLElement Object
(
[KYCName] => LastName
[KYCValue] => ccc
)
)
)
)