解析2差异Soap Response PHP

时间:2019-02-03 13:52:55

标签: php xml soap response

我是php的新手,如何解析soap xml的2个差异响应?

响应1

'<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:MobileAgentAPI="urn:openApi">
<SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<MobileAgentAPI:invokeResponse>
	<SOAP-ENV:BodySOAP-ENV:Body>
		<values xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="MobileAgentAPI:SoapMapValue[13]">
	<item>
		<name>amount</name>
		<singleValue>5000</singleValue>
	</item>
	<item>
		<name>balance</name>
		<singleValue>12210000</singleValue>
	</item>
	<item>
		<name>lastBalance</name>
		<singleValue>12215000</singleValue>
	</item>
	<item>
		<name>returnCode</name>
		<singleValue>00</singleValue>
	</item>
	<item>

响应2

 <?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:MobileAgentAPI="urn:openApi"><SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><MobileAgentAPI:invokeResponse><invokeReturn><values xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="MobileAgentAPI:SoapMapValue[6]"><item><name>balance</name><singleValue>15420000</singleValue></item><item><name>returnCode</name><singleValue>01</singleValue></item><item><name>transactionStatus</name><singleValue>02</singleValue></item><item><name>errorCode</name><singleValue>324</singleValue></item><item><name>errorDescription</name><singleValue>(324) Maaf, transaksi pada 01/10/18 06:00 gagal. Nomor tujuan tidak terdaftar. =</singleValue></item><item><name>tran

我尝试使用DOM Document,但是如果我们有2个响应,则结果为错误

1 个答案:

答案 0 :(得分:0)

为什么要尝试解析XML响应? 使用本机PHP SoapClient类,您至少可以处理PHP数组或更好的对象。

使用WSDL to PHP生成器,因此您将不会奇怪如何构造请求数据或如何处理响应,因为您将始终使用更好的OOP方法。尝试PackageGenerator项目。