запрос xpath для поиска пути в php - PullRequest
0 голосов
/ 01 марта 2012
<HotelList>
  <HotelSummary>
    <hotelId>247331</hotelId>
    <name>The Accord</name>
    <RoomRateDetailsList>
      <RoomRateDetails>
        <roomTypeCode>200052939</roomTypeCode>
        <rateCode>200309117</rateCode>
        <RateInfos size="1">
          <RateInfo rateChange="false" promo="true" priceBreakdown="true">
            <RoomGroup>
              <Room>
                <numberOfAdults>2</numberOfAdults>
              </Room>
            </RoomGroup>
            <ChargeableRateInfo total="103.01" surchargeTotal="26.52" nightlyRateTotal="76.49" maxNightlyRate="76.49" currencyCode="USD" commissionableUsdTotal="76.49" averageRate="76.49" averageBaseRate="101.99">
          </ChargeableRateInfo>
        </RateInfo>
      </RateInfos>
    </RoomRateDetails>
  </RoomRateDetailsList>
</HotelSummary>
</HotelList>

Привет друзья, Мне нужно отобразить значения узла <numberofresults> & <chargeablerateinfo> в xpath или simpleXML, плз, дайте мне, как получить доступ к этим элементам. Я использовал этот код

  foreach($item ->('RoomRateDetailsList/RoomRateDetails/RateInfos/RateInfo /RoomGroup/Room/') as $items){
     echo $item->numberofresults;
  }

но это не работает Пожалуйста, дайте мне предложение или полное кодирование заранее спасибо

Ответы [ 2 ]

1 голос
/ 01 марта 2012

Мне нужно отобразить значения <numberofresults> & <chargeablerateinfo> узел в xpath или simpleXML, пожалуйста, дайте мне, как получить доступ к этим элементам.

В предоставленном XML-документе нет элемента с именем numberofresults - вы, вероятно, имеете в виду numberOfAdults.

Это выражение XPath :

//RateInfo/RoomGroup/Room

выбирает любой элемент Room, который является дочерним по отношению к RoomGroup, который является дочерним по отношению к любому элементу RateInfo в XML-документе.

Это выражение XPath :

//RateInfo/RoomGroup/Room/numberOfAdults

выбирает numberOfAdults дочерних элементов, выбранных предыдущим выражением.

И это выражение XPath :

//RateInfo/ChargeableRateInfo 

выбирает элемент ChargeableRateInfo, связанный с RoomGroup

Итак, в вашем коде вы можете захотеть сделать что-то вроде этого :

$xml = simplexml_load_file("test.xml");

$rateInfos = $xml->xpath('//RateInfo');                
foreach ($rateInfos as $rateInfo) 
{    
   $rooms = $rateInfo->xpath('RoomGroup/Room');   

   foreach ($rooms as $room)
    {
      echo $room->numberOfAdults; 
    }

  $chargeableRateInfo = $rateInfo->xpath('ChargeableRateInfo');   

  // Do whatever is wanted with $chargeableRateInfo               
}  
0 голосов
/ 01 марта 2012
$xml = simplexml_load_file("test.xml");
$rooms = $xml->xpath('//Room');
foreach ($rooms as $room) {
     echo $room->numberOfAdults;
}

должен сделать трюк

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