繁体   English   中英

xml文件到PHP的转换以及多维数组的使用

[英]Conversion of xml file to PHP and use of multi-dimensional array's

我正在一个项目中,我需要将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的经度,纬度值,

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

所以,

由于缺少一些细节,我想您想检索这些值吗? 在这种情况下,simplexml不会返回数组而是一个对象。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM