Выполнить анализ SOAP-ответа с помощью PHP?

Я проанализировал содержимое HTML как ответ SOAP, но я не могу получить его на клиенте.

Это код PHP, который я использовал для анализа ответа SOAP:

$obj = simplexml_load_string(read_file('../soap.xml')); var_dump($obj->children('http://schemas.xmlsoap.org/soap/envelope/')); 

Вот ответ SOAP:

 <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <GetDetailsResponse xmlns="http://192.168.2.34:180/"> <GetDetailsResult>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt; </GetDetailsResult> </GetDetailsResponse> </soap:Body> </soap:Envelope> 

Он показывает следующую ошибку:

 A PHP Error was encountered Severity: Warning Message: simplexml_load_string(): Entity: line 1: parser error : XML declaration allowed only at the start of the document Filename: controller.php Line Number: 60 A PHP Error was encountered Severity: Warning Message: simplexml_load_string(): A PHP Error was encountered Severity: Warning Message: simplexml_load_string(): ^ Filename: controller.php Line Number: 60 

Помогите мне разобрать его с помощью PHP?

Solutions Collecting From Web of "Выполнить анализ SOAP-ответа с помощью PHP?"

Каков результат var_dump ($ obj-> children (' http://schemas.xmlsoap.org/soap/envelope/ ));

У меня есть простое решение для этого. Как обрабатывать ответ SOAP

У меня есть xml resopnse файл

 <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <xyzResponse xmlns="http://tempuri.org/"> <xyzResult> <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="Table"> <xs:complexType> <xs:sequence> <xs:element name="myCityID" type="xs:int" minOccurs="0" /> <xs:element name="myCityName" type="xs:string" minOccurs="0" /> <xs:element name="myLat" type="xs:double" minOccurs="0" /> <xs:element name="myLon" type="xs:double" 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"> <NewDataSet xmlns=""> <Table diffgr:id="Table1" msdata:rowOrder="0"> <CityID>1</CityID> <CityName>Ahmedabad</CityName> <Lat>23.045839</Lat> <Lon>72.550578</Lon> </Table> <Table diffgr:id="Table2" msdata:rowOrder="1"> <CityID>21</CityID> <CityName>Amritsar</CityName> <Lat>31.705603</Lat> <Lon>74.807337</Lon> </Table> </NewDataSet> </diffgr:diffgram> </xyzResult> </xyzResponse> </soap:Body> </soap:Envelope> 

Я хочу получить только данные таблиц, а затем использовать следующий код

  $sxe = new SimpleXMLElement($response);//in $response varible its a xml file or xml response $sxe->registerXPathNamespace('d', 'urn:schemas-microsoft-com:xml-diffgram-v1'); $result = $sxe->xpath("//NewDataSet"); echo "<pre>"; //print_r($result[0]); foreach ($result[0] as $title) { print_r($title); //echo $title->CityID; } 

Для получения дополнительной информации посетите

https://vaja906programmingworld.wordpress.com/

Название сообщения: Как разобрать SOAPResponse с помощью PHP