2015-02-23 54 views
0

我正在處理一個需要將XML文件轉換爲PHP格式的項目,以便我可以在文件中使用該值。我用下面的代碼:將xml文件轉換爲PHP並使用多維數組

$myarray = simplexml_load_file('/*xml file location*/'); 

XML文件是:

<?xml version="1.0" encoding="UTF-8"?> 
<GeocodeResponse> 
<status>OK</status> 
<result> 
    <type>locality</type> 
    <type>political</type> 
    <formatted_address>Vijayawada, Andhra Pradesh, India</formatted_address> 
    <address_component> 
    <long_name>Vijayawada</long_name> 
    <short_name>Vijayawada</short_name> 
    <type>locality</type> 
    <type>political</type> 
    </address_component> 
    <address_component> 
    <long_name>Krishna</long_name> 
    <short_name>Krishna</short_name> 
    <type>administrative_area_level_2</type> 
    <type>political</type> 
    </address_component> 
    <address_component> 
    <long_name>Andhra Pradesh</long_name> 
    <short_name>AP</short_name> 
    <type>administrative_area_level_1</type> 
    <type>political</type> 
    </address_component> 
    <address_component> 
    <long_name>India</long_name> 
    <short_name>IN</short_name> 
    <type>country</type> 
    <type>political</type> 
    </address_component> 
    <geometry> 
    <location> 
    <lat>16.5061743</lat> 
    <lng>80.6480153</lng> 
    </location> 
    <location_type>APPROXIMATE</location_type> 
    <viewport> 
    <southwest> 
    <lat>16.4565307</lat> 
    <lng>80.5572568</lng> 
    </southwest> 
    <northeast> 
    <lat>16.5639733</lat> 
    <lng>80.7316657</lng> 
    </northeast> 
    </viewport> 
    <bounds> 
    <southwest> 
    <lat>16.4565307</lat> 
    <lng>80.5572568</lng> 
    </southwest> 
    <northeast> 
    <lat>16.5639733</lat> 
    <lng>80.7316657</lng> 
    </northeast> 
    </bounds> 
    </geometry> 
    <place_id>ChIJS5QtSPnvNToRZQJKq4R-m5M</place_id> 
</result> 
</GeocodeResponse> 

這給了我一個PHP陣列輸出爲:

SimpleXMLElement Object ([status] => OK 
          [result] => SimpleXMLElement Object ( 
          [type] => Array ( 
           [0] => locality [1] => political 
          ) 
          [formatted_address] => Vijayawada, Andhra Pradesh, India 
          [address_component] => Array ( 
           [0] => SimpleXMLElement Object ( 
           [long_name] => Vijayawada 
           [short_name] => Vijayawada 
           [type] => Array ( 
            [0] => locality 
            [1] => political 
           ) 
           ) 
           [1] => SimpleXMLElement Object (
           [long_name] => Krishna 
           [short_name] => Krishna 
           [type] => Array ( 
            [0] => administrative_area_level_2 
            [1] => political 
           ) 
           ) 
           [2] => SimpleXMLElement Object ( 
           [long_name] => Andhra Pradesh 
           [short_name] => AP 
           [type] => Array ( 
            [0] => administrative_area_level_1 
            [1] => political 
           ) 
           ) 
           [3] => SimpleXMLElement Object (
            [long_name] => India 
            [short_name] => IN 
            [type] => Array ( 
            [0] => country 
            [1] => political 
            ) 
           ) 
           ) 
           [geometry] => SimpleXMLElement Object (
           [location] => SimpleXMLElement Object ( 
            [lat] => 16.5061743 
            [lng] => 80.6480153 
           ) 
           [location_type] => APPROXIMATE 
           [viewport] => SimpleXMLElement Object ( 
            [southwest] => SimpleXMLElement Object ( 
            [lat] => 16.4565307 
            [lng] => 80.5572568 
            ) 
            [northeast] => SimpleXMLElement Object ( 
             [lat] => 16.5639733 
             [lng] => 80.7316657 
            ) 
            ) 
            [bounds] => SimpleXMLElement Object ( 
            [southwest] => SimpleXMLElement Object ( 
            [lat] => 16.4565307 
            [lng] => 80.5572568 
            ) 
            [northeast] => SimpleXMLElement Object ( 
             [lat] => 16.5639733 
             [lng] => 80.7316657 

            ) 
            ) 
           ) 
           [place_id] => ChIJS5QtSPnvNToRZQJKq4R-m5M 
           ) 
          ) 

現在,我的問題是: 我需要只有位置部分Ie的lat,lon的值,

[geometry] => SimpleXMLElement Object ([location] => SimpleXMLElement Object ([lat] => 16.5061743 [lng] => 80.6480153) 

所以,

+0

嗨,歡迎來到Stack Overflow。請澄清您的具體問題或添加其他詳細信息,以突出顯示您的需求。正如它目前所寫,很難確切地說出你在問什麼。請參閱[如何提問](http://stackoverflow.com/help/how-to-ask)頁面以獲得澄清此問題的幫助。 – jurgemaister 2015-02-23 13:27:06

回答

1

由於有一些缺少的細節,我想你想檢索的價值?在這種情況下,simplexml不會返回數組,而是返回一個對象。

$myarray = simplexml_load_file('/*xml file location*/'); 
$lat = $myarray->result->geometry->location->lat; 
$long = $myarray->result->geometry->location->lng 
+0

謝謝,這很有效 – santoshdhraj 2016-04-27 22:34:11