如何在PHP中解析SOAP响应?
我刚开始使用SOAP的web服务 我使用下面的代码获得响应如何在PHP中解析SOAP响应?,php,web-services,soap,Php,Web Services,Soap,我刚开始使用SOAP的web服务 我使用下面的代码获得响应 $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/X
$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>
有人能帮我得到Name元素的值吗?
我尝试过simplexml\u load\u string$response和X-Path/Name,但无法获得它。您可以尝试使用:
您可以这样尝试:
$response = $objClient->__getLastResponse();
$doc = new DOMDocument();
$doc->loadXML($response);
$names= $doc->getElementsByTagName( "Name" );
$name = $names->item(0)->nodeValue;
var_export( $name );
它返回空值。但当我放弃$doc时;我可以在Chrome的Insplect元素中看到节点。我通过文件“$response=file\u get\u contentssoap.xml;”解析了您的xml而不是$response=$objClient->\uu getLastResponse。它解析Name元素。