У меня SOAP-запрос не работает должным образом, и хост-компания попросила меня изменить формат XML-запроса.
В настоящее время мой XML-запрос выглядит следующим образом ...
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:Search>
<ns1:Header>
<ns1:AgentId>333</ns1:AgentId>
</ns1:Header>
<ns1:Search>
<ns1:CityId>234</ns1:CityId>
<ns1:HotelId>2209714</ns1:HotelId>
<ns1:SearchRooms>
<ns1:SearchRoom>
<ns1:Adult>2</ns1:Adult>
</ns1:SearchRoom>
</ns1:SearchRooms>
<ns1:PaxCountryId>25</ns1:PaxCountryId>
</ns1:Search>
</ns1:Search>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Но принимающая компания запросила, чтобы это выглядело так ...
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<Search xmlns="http://tempuri.org/">
<Header>
<AgentId>333</AgentId>
</Header>
<Search>
<CityId>234</CityId>
<HotelId>2209714</HotelId>
<SearchRooms>
<SearchRoom>
<Adult>2</Adult>
</SearchRoom>
</SearchRooms>
<PaxCountryId>25</PaxCountryId>
</Search>
</Search>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Мой PHP-запрос:
try {
$data = array("Search" =>
array(
"Header" => array(
"AgentId" => "333",
),
"Search" => array(
"CityId" => "234",
"HotelId" => "2209714",
"SearchRooms" => array(
"SearchRoom" => array(
"Adult" => "2",
),
)
),
)
);
$client = new SoapClient('xxxxx', array('trace'=> 1));
$retour_ws = $client -> __call('Search',$data);
echo htmlspecialchars($client->__getLastRequest());
echo htmlspecialchars($client->__getLastResponse());
}
catch (Exception $e) {
echo $e;
}
Может кто-нибудь помочь мне найти то, что требуется для изменения формата выходного XML без пространства имен ns1?