Оно возвращает пустой массив


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

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

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

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

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

3 3

3 ответа:

Для поиска конкретного lat Сделайте следующее:

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

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

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

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

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

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

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

// указывает xPath искать узлы lat независимо от того, где они находятся.