przeanalizuj odpowiedź XML SOAP za pomocą obszarów nazw używając PHP

Mam ten brzydki XML, który zawiera wiele przestrzeni nazw, gdy próbuję załadować go za pomocą simpleXML, jeśli wskażę pierwszą przestrzeń nazw, którą otrzymam, ale obiekt xml nie dotrze do obiektu. Oto odpowiedź SOAP

<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns8502="http://tempuri.org">
   <SOAP-ENV:Header>
     <Interface PartnerID="FastBooking" PartnerType="Test" Version="1.0.0" />
     <Credentials HotelID="AC00006" User="User" Password="123456" />
     <Client Ref ="123456789" TimeStamp="2012-12-14T12:24:25+0100"/>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
     <ServiceNameRQ xmlns="urn:wsTest">
         <GetRatesRS>
             <Rates>
                 <Rate RateID="12984" FromDate="2010-05-12" ToDate="2010-06-30" RateType="PUBLIC" RateCode="RAC" MinRate="100" MaxRate="1000" Currency="EUR" ReadOnly="No" FromRateID="11456">
                    <RateName>Rack Rate</RateName>
                 </Rate>
                 <Rate RateID="13219" FromDate="2010-07-12" ToDate="2010-12-31" RateType="PUBLIC" RateCode="NORMAL" MinRate="100" MaxRate="1000" Currency="EUR" ReadOnly="Yes">
                    <RateName>Normal Rate</RateName>
                     <R1 Name="Single Occupancy" MinRate="90.00" MaxRate="1500.00" />
                     <R2 Name="Double Occupancy" MinRate="120.00" MaxRate="2000.00" />
                     <R3 Name="2 Nights" MinRate="150.00" MaxRate="2000.00" />
                    </Rate>
                     </Rates>
            </GetRatesRS>
        </ServiceNameRQ>
        </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

Oto kod PHP, którego używam:

$result = $xml_query;
$result = stripslashes($result);

 $result = simplexml_load_string($result);
$namespacesMeta = $result->getNamespaces(true);
$mediaXML = $result->children($namespacesMeta['SOAP-ENV:Header']);

$Interface = $mediaXML->xpath('//Interface');
$Credentials = $mediaXML->xpath('//Credentials');
$Client = $mediaXML->xpath('//Client');

$attributesInterface = $Interface[0]['@attributes'];
$PartnerID = $attributesInterface['PartnerID'];
$PartnerType = $attributesInterface['PartnerType'];
$Version = $attributesInterface['Version'];

$attributesCredentials = $Credentials[0]['@attributes'];
$HotelID = $attributesCredentials['HotelID'];
$User = $attributesCredentials['User'];
$Password = $attributesCredentials['Password'];


$HotelID = filter_var($HotelID, FILTER_SANITIZE_MAGIC_QUOTES);
$User = filter_var($User, FILTER_SANITIZE_MAGIC_QUOTES);
$Password = filter_var($Password, FILTER_SANITIZE_MAGIC_QUOTES);
$Password = tchag3iba($Password);

Ale nie mogę pobrać zawartościSOAP-ENV:Body (GetRatesRS -> Rates -> Rate)

questionAnswers(1)

yourAnswerToTheQuestion