如何在php中检索xml根元素的所有属性?

时间:2012-03-06 08:26:24

标签: php xml

我有一个像这样的xml:

<ns2:HotelRhg xmlns:ns2="http://v3.abc.somexyz.com/" size="6">
<hotelId>340194</hotelId>
<arrivalDate>03/06/2012</arrivalDate>
 ....

我想检索第一行(根元素)属性,例如“size”及其值。我用了


$xml->getDocNamespaces(TRUE); 

但我只得到ns2 =“http://v3.abc.somexyz.com/”而不是size = 6

所以请任何人都可以使用PHP来解决这个问题

1 个答案:

答案 0 :(得分:1)

Simplexml_load_string()是解决方案

  $string = <<<XML
 <ns2:HotelRhg xmlns:ns2="http://v3.abc.somexyz.com/" size="6">
 <hotelId>340194</hotelId>
 <arrivalDate>03/06/2012</arrivalDate>
  XML; 

 $xml = simplexml_load_string($string);
   foreach($xml->ns2[1]->attributes() as $a => $b) {
   echo $a,'="',$b,"\"\n"; 

如果您只想要大小,请执行以下操作而不是迭代

       $attributes = $xml->ns2[0]->attributes(); //collection of all attributes in ns2
       <b><?=$attributes['size'] ?></b>  // in your html