SimpleXML возвращает пустые массивы

#php #google-maps #simplexml

#php #google-карты #simplexml

Вопрос:

Я пытаюсь получить широту и долготу города с помощью API Карт Google и через PHP (SimpleXML).

Я пытаюсь сделать это так:

 $xml = simplexml_load_file("http://maps.googleapis.com/maps/api/geocode/xml?address=Brussels,Belgiumamp;sensor=false");
$lat= $xml->xpath("lat");
print_r($lat);
 

Но это возвращает пустой массив каждый раз.
Я что-то упускаю?

Любая помощь очень ценится.

Ответ №1:

Для поиска конкретного lat сделайте это:

 <?php
  $xml = simplexml_load_file("http://maps.googleapis.com/maps/api/geocode/xml?address=Brussels,Belgiumamp;sensor=false");
  $lat= $xml->xpath("/GeocodeResponse/result/geometry/location/lat");
  print_r($lat);
?>
 

Для всех lat вхождений укажите путь //lat .

Ответ №2:

Вы должны использовать это вместо:

 $xml->xpath("//lat");
 

Таким образом, вы ищете тег lat, который может быть везде в дереве.

Ответ №3:

Ваш запрос XPath неверен. Это должно быть:

 $lat= $xml->xpath("//lat");
 

// Сообщает XPath для поиска lat узлов независимо от того, где они находятся.