从多维数组中检索xml节点值

时间:2014-04-16 08:58:36

标签: php xml arrays multidimensional-array

我以数组格式存储xml响应。现在我需要从数组中获取像HotelLocation,hotelCode等节点属性值。下面是我的数组的格式:

Array
(
[0] => Array
        (
            [media] => <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"><SOAP:Body><hotel:HotelMediaLinksRsp TraceId="trace" TransactionId="69B008C27F00000109CA96A4918F80C6" ResponseTime="77" xmlns:common_v25_0="http://www.travelport.com/schema/common_v25_0" xmlns:hotel="http://www.travelport.com/schema/hotel_v25_0"><hotel:HotelPropertyWithMediaItems><hotel:HotelProperty HotelChain="CP" HotelCode="36588" HotelLocation="DXB" Name="CROWNE PLAZA FESTIVAL CITY" VendorLocationKey="1tTgCxLKRUuwf3+sFMCwFg==" HotelTransportation="Limo" ReserveRequirement="Other" ParticipationLevel="Enhanced Best Available Rate participant" Availability="Available" FeaturedProperty="true" NetTransCommissionInd="C"><hotel:PropertyAddress><hotel:Address>DUBAI-FESTIVAL CITY</hotel:Address></hotel:PropertyAddress></hotel:HotelProperty></hotel:HotelPropertyWithMediaItems></hotel:HotelMediaLinksRsp></SOAP:Body></SOAP:Envelope>
)
)

(PHP)

1 个答案:

答案 0 :(得分:0)

首先,您需要访问阵列的那一部分。

如果它存储为$MyResponse,您可以使用[0]访问$MyResponse[0]

然后我会将XML转换为数组,以便更容易访问。有关SimpleXML here.

的更多信息,请参阅
$xml = new SimpleXMLElement($MyResponse[0]);

然后您可以像数组一样访问各个元素。 例如..

echo $xml->a->b->b['name'];