基于特定节点的XML数据提取

时间:2014-12-11 11:41:18

标签: php xml extract

我很想从基于XML文件的特定节点的xml文件中提取一些信息,如下所示:

<?xml version="1.0" encoding="UTF-8" ?> 
 <XMLResponse>
    <ResponseType>HotelListResponse</ResponseType> 
    <TotalNumber>2</TotalNumber> 
    <Hotels>
      <Hotel>
        <HotelCode>YYYYYY</HotelCode>
        <OldHotelId>X/XXXXXXXX</OldHotelId> 
        <DestinationId>XXXX</DestinationId> 
        <Destination>Name of city</Destination> 
        <Country>Name of country</Country> 
        <HotelName>Hotel Name</HotelName> 
        <StarRating>x</StarRating> 
        <HotelAddress>Hotel address</HotelAddress>
        <HotelPostalCode>Zip Code</HotelPostalCode>
        <HotelPhoneNumber>Hotel phone number</HotelPhoneNumber> 
        <HotelArea>Hotel area</HotelArea>
        <Chain>Hotel Chain</Chain> 
        <Coordinates>
          <Latitude>latitude</Latitude> 
          <Longitude>longitude</Longitude> 
        </Coordinates>
        <HotelImages>
          <ImageURL>URL1</ImageURL> 
          <ImageURL>URL2</ImageURL> 
          <ImageURL>URL3</ImageURL> 
        </HotelImages>
      </Hotel>
  </Hotels>
</XMLResponse>

我希望根据<HotelName> </HotelName><HotelCode>YYYYY</HotelCode>获取(提取)信息 “YYYYY”在我的php文件中回显(<?php echo $hotel->hotelCode?><) 我试过并阅读了我找到的所有例子,但没有一个帮助过我。

任何帮助都会有很大帮助。

1 个答案:

答案 0 :(得分:0)

使用xpath非常简单。

实施例

$dom = new DOMDocument();
$dom->load($file);
$xpath = new DOMXPath($dom);
echo $xpath->evaluate('string(//Hotel[HotelCode = "YYYYYY"]/HotelName)');

结果:

Hotel Name