xml 文件
[php]<?xml version="1.0" encoding="utf-8"?>
<HotelSessionRequest method='runHotelAvailabilityListQuery'>
<HotelAvailabilityListQuery>
<city>Qingdao</city>
<stateProvince>
</stateProvince>
<country>CN</country>
<arrivalDate>08/31/2008</arrivalDate>
<departureDate>09/02/2008</departureDate>
</HotelAvailabilityListQuery>
</HotelSessionRequest>[/php]
parser文件:
[php]$xmlDoc = new DOMDocument();
$xmlDoc->load("xml_test.xml");
$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item)
  {
  echo $item->nodeName . " = " . $item->nodeValue . "   ::   end<br />";
  }[/php]现在得到的结果是,把第一级字节点下的内容一起输出了:HotelAvailabilityListQuery = QingdaoCN08/31/200809/02/2008::end
有没有办法,能让我做出 city: qingdao
Country: CN
arrivalDate:08/31/2008
这样的结果, 即遍历所有字节点, 输出节点名 及 节点内容?

解决方案 »

  1.   

    $xx = $x->getElementsByTagName('HotelAvailabilityListQuery'); 
    foreach ($xx->childNodes AS $item)
    {
      echo $item->nodeName . " = " . $item->nodeValue . "  ::  end <br />";
    }
      

  2.   


    $doc = new DOMDocument();
    $doc->load( 'message.xml' );$x = $doc->documentElement->getElementsByTagName('HotelAvailabilityListQuery');
    foreach ($x->item(0)->childNodes AS $item)
    {
       echo $item->nodeName . " = " . $item->nodeValue . "  ::  end <br />";
    }