2012-03-01 115 views
0
<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> 

朋友你好, 我需要的XPath 显示<numberofresults> & <chargeablerateinfo>节点的值或simplexml的PLZ给我如何访问这些元素。 我用这个代码XPath查询

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

,但它不工作 PLZ给我的建议或全编码 由于事先

+0

显示numberofresults和chargea的值bleinfo – 2012-03-01 14:28:36

+0

azarudeen ajees,我的回答对你有用吗?如果是这样,请*,接受*(通过点击答案旁边的复选标记)。 – 2012-03-02 13:56:32

+0

你的答案帮了我,但我没有找到它附近的复选标记plz指示 – 2012-03-03 03:40:48

回答

1

我需要显示的值的<numberofresults> & <chargeablerateinfo> node in xpath或simpleXML plz give我如何 访问这些元素。

在提供的XML文档中没有名为numberofresults元素 - 你大概是这个意思numberOfAdults

这个XPath表达式

//RateInfo/RoomGroup/Room 

选择任何Room元件是一个RoomGroup在XML文档中的任何RateInfo元素的子元素的子元素。

这个XPath表达式

//RateInfo/RoomGroup/Room/numberOfAdults 

选择由前面的表达式中选择的元素的numberOfAdults孩子。

而这个XPath表达式

//RateInfo/ChargeableRateInfo 

选择与RoomGroup

所以相关的ChargeableRateInfo元素,在你的代码,你可能想要做这样的事情

$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    
} 
+1

如果OP会授予一些功劳,那该多好啊? – 2012-03-02 07:39:13

0
$xml = simplexml_load_file("test.xml"); 
$rooms = $xml->xpath('//Room'); 
foreach ($rooms as $room) { 
    echo $room->numberOfAdults; 
} 

应该做的伎俩

+0

如何在xpath中访问ChargeableRateInfo的属性php plz help it – 2012-03-02 07:26:17