[英]PHP SOAP response in XML - how to read it as variable
我從SOAP WSDL調用得到響應:
$client = new SoapClient($settings['address']);
$params = new stdClass();
$params->Username = $settings['username'];
$params->Password = $settings['password'];
var_dump($client->Get_Brands($params));
以下是回應。 如何實際在PHP中閱讀它? 我是否需要使用DOMDocument遍歷它,還是有將SOAP結果返回到對象或數組中的東西?
<xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="NewDataSet">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="Table" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Table">
<xs:complexType>
<xs:sequence>
<xs:element name="ID" type="xs:decimal" minOccurs="0"/>
<xs:element name="Description" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<DocumentElement xmlns="">
<Table diffgr:id="Table1" msdata:rowOrder="0">
<ID>1</ID>
<Description>Alfa Romeo</Description>
</Table>
<Table diffgr:id="Table2" msdata:rowOrder="1">
<ID>2</ID>
<Description>Alpina</Description>
</Table>
</DocumentElement>
</diffgr:diffgram>
您應該將有效的WSDL定義作為SoapClient()的第一個參數傳遞。 您還可以設置一些特定的選項作為第二個參數(例如soap_version)。 通常,不需要解析SOAP響應-您應該獲取某種類型的方法結果。 但是,如果無效的SOAP響應SoapClient無法自動識別和解析,則可能需要使用DOMDocument或SimpleXML進行手動解析。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.