SOAP namesapce в запросе xml - PullRequest
       1

SOAP namesapce в запросе xml

0 голосов
/ 06 ноября 2018

У меня 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...