Я создаю класс геокодирования, который может использовать несколько веб-сервисов для геокодирования (например, Google, Yahoo, Bing и т. Д.). Я пытаюсь сделать так, чтобы новые веб-сервисы можно было легко настроить. Большинство веб-сервисов возвращают либо XML / JSON ... для PHP, я выбрал XML в качестве основного направления. Весь код уже на месте, но теперь Google, например, возвращает следующий XML (преобразованный в простой_xml_element)
SimpleXMLElement Object
(
[status] => OK
[result] => Array
(
[0] => SimpleXMLElement Object
(
[type] => postal_code
[formatted_address] => 1010 Lausanne, Switzerland
[address_component] => Array
(
[0] => SimpleXMLElement Object
(
[long_name] => 1010
[short_name] => 1010
[type] => postal_code
)
[1] => SimpleXMLElement Object
(
[long_name] => Lausanne
[short_name] => Lausanne
[type] => Array
(
[0] => locality
[1] => political
)
)
[2] => SimpleXMLElement Object
(
[long_name] => Vaud
[short_name] => VD
[type] => Array
(
[0] => administrative_area_level_1
[1] => political
)
)
[3] => SimpleXMLElement Object
(
[long_name] => Switzerland
[short_name] => CH
[type] => Array
(
[0] => country
[1] => political
)
)
)
[geometry] => SimpleXMLElement Object
(
[location] => SimpleXMLElement Object
(
[lat] => 46.5376186
[lng] => 6.6539665
)
[location_type] => APPROXIMATE
[viewport] => SimpleXMLElement Object
(
[southwest] => SimpleXMLElement Object
(
[lat] => 46.5253574
[lng] => 6.6384420
)
[northeast] => SimpleXMLElement Object
(
[lat] => 46.5467887
[lng] => 6.6745222
)
)
[bounds] => SimpleXMLElement Object
(
[southwest] => SimpleXMLElement Object
(
[lat] => 46.5253574
[lng] => 6.6384420
)
[northeast] => SimpleXMLElement Object
(
[lat] => 46.5467887
[lng] => 6.6745222
)
)
)
)
)
Мне нужна информация в теге [location], поэтому я попытался сохранить путь в переменной:
$lat_path = 'result[0]->geometry->location->lat;
А затем попробуйте получить доступ к значению следующим образом:
(suppose $xml is the object)
$xml->{$lat_path};
Но это не работает. Есть ли способ получить доступ к информации динамически или на основе переменных. Я не хочу испортить свой метод геокодирования с помощью специального кода Google.
Спасибо!