Garip Sorun DOM, PHP kullanarak xml Taşıma sırasında

0 Cevap php

Ben bu gibi bir xml işlemek istiyorum:

<GeocodeResponse> 
 <status>OK</status> 
 <result> 
  <type>street_address</type> 
  <address_component> 
   <long_name>Beijing</long_name> 
   <short_name>Beijing</short_name> 
   <type>locality</type> 
   <type>political</type> 
  </address_component> 
  <address_component> 
   <long_name>Beijing</long_name> 
   <short_name>Beijing</short_name> 
   <type>administrative_area_level_1</type>
   <type>political</type> 
  </address_component>  
 </result> 
</GeocodeResponse>

Ben ne yapmak istediğimi döngü

Bu kullanırken:

$doc = new DOMDocument();
$doc->loadXML($contents);

$addresses=$doc->getElementsByTagName("address_component");

foreach($addresses as $address){

    $nodes = $address->$childNodes; //error arise here

    for($i=0;$i<count($nodes);$i++){
        //do work
    }

}

Her zaman gösterecek:

    Fatal error: Cannot access empty property in C:\xampp\htdocs\read.php on line

$nodes = $address->$childNodes;

aşağıda kod ile çalışıyor ise:

        $doc = new DOMDocument();
        $doc->loadXML($contents);

        $addresses=$doc->getElementsByTagName("address_component");
        for($k=0;$k<$addresses->length;$k++){
        $type_elements = $addresses->item($k)->getElementsByTagName('type');

            //do work        
        } 

Ben 'foreach' ne zaman ilk örnekte bu iki yöntem arasındaki farkı göremiyorum, ben olsun $ adres bir tek < address_component> bunun gibi bir öğe:

  <address_component> 
   <long_name>Beijing</long_name> 
   <short_name>Beijing</short_name> 
   <type>administrative_area_level_1</type>
   <type>political</type> 
  </address_component> 

değil mi?

ve tabii ki $ gibi childNodes vardır < long_name>, < SHORT_NAME> vs

ama neden ben boş mülkiyet olsun?

0 Cevap