0
SOAP
을 사용하여 웹 서비스를 시작했습니다.PHP에서 SOAP 응답을 파싱하는 방법은 무엇입니까?
아래 코드를 사용하여 응답을 얻습니다.
$response = $objClient->__getLastResponse();
내 반응은 다음과 같습니다
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:getHotelValuedAvail xsi:type="xsd:string" xmlns:ns1="http://axis.frontend.hydra.hotelbeds.com">
<HotelValuedAvailRS xmlns="http://www.hotelbeds.com/schemas/2005/06/messages" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" timeToExpiration="1771163" totalItems="387" echoToken="DummyEchoToken">
<PaginationData currentPage="1" totalPages="387"/>
<ServiceHotel xsi:type="ServiceHotel" availToken="ngQXOz+UOoLDtPieFMhu9wdw">
<DateFrom date="20130709"/>
<DateTo date="20130711"/>
<Currency code="EUR">Euro</Currency>
<HotelInfo xsi:type="ProductHotel">
<Code>99361</Code>
<Name>Hilton Sa Torre Mallorca Resort</Name>
<Position latitude="39.42761529999999936535" longitude="2.75602390000000019299"/>
</HotelInfo>
</ServiceHotel>
</HotelValuedAvailRS>
</ns1:getHotelValuedAvail>
</soapenv:Body>
</soapenv:Envelope>
어떤 사람은 이름 요소의 값을 얻기 위해 나를 도와 드릴까요? simplexml_load_string($response)
및 X-Path("/Name")
을 시도했지만 알 수 없습니다.
을 그것은 null 값을 반환합니다. 하지만 내가 var_dump ($ doc); Chrome의 Insplect 요소에서 노드를 볼 수 있습니다. [테스트 사이트는 여기에 있습니다.] –
나는 $ response 대신 $$ response = file_get_contents ("soap.xml"); 파일을 통해 XML을 파싱했습니다. = $ objClient -> __ getLastResponse();'. 'Name' 요소를 파싱합니다. –