2013-11-26 5 views
0

Я разбираю карту api google для получения адреса latlong формы. Я получил xml успешно. Как я могу получить latlong из ответа xml.PHP с curl для синтаксического анализа Xml

Мой ответ

SimpleXMLElement Object ([состояние] => OK [результат] => SimpleXMLElement Object ([тип] => Array ([0] => локальность [1] => политические) [formatted_address ] => Нью-Дели, Дели, Индия [address_component] => Array ([0] => SimpleXMLElement Object ([long_name] => New Delhi [short_name] => New Delhi [type] => Array ([0] => локаль [1] => политический)) [1] => SimpleXMLElement Object ([long_name] => West Delhi [short_name] => West Delhi [type] => Array ([0] => Administrative_area_level_2 [1] => политический)) [2] => SimpleXMLElement Object ([long_name] => Delhi [short_name] => DL [type] => Array ([0] => administrator_area_level_1 [1] => политический)) [3] => Объект SimpleXMLElement ([long_name] => Индия [short_name] => IN [type] => Array ([0] => страна [1] => политическая))) [geometry] => SimpleXMLElement Object ([location] => SimpleXMLElement Object ([lat] => 28.6353080 [lng] => 77.2249600) [location_type] => APPROXIMATE [viewport] => Объект SimpleXMLElement ([southwest] => Объект SimpleXMLElement ([lat] => 28.4010669 [lng] => 76.8396999) [северо-восток] => Объект SimpleXMLElement ([lat] => 28.8898159 [lng] => 77.3418146)) [bounds] => Объект SimpleXMLElement ([southwest] => Объект SimpleXMLElement ([lat] => 28.4010669 [lng] => 76.8396999) [северо-восток] => Объект SimpleXMLElement ([lat] => 28.8898159 [lng] => 77.3418146)))))

я хочу, чтобы получить Геометрия-> Адрес-> Lat значение

Помогите мне с этого номера

заранее спасибо

ответ

2

Это проще с DOM + XPath, то DOMXPath :: оценить() метод может принести скалярные значения из-за XML:

$xml = <<<'XML' 
<GeocodeResponse> 
<status>OK</status> 
<result> 
    <geometry> 
    <location> 
    <lat>37.4217550</lat> 
    <lng>-122.0846330</lng> 
    </location> 
    <location_type>ROOFTOP</location_type> 
    <viewport> 
    <southwest> 
    <lat>37.4188514</lat> 
    <lng>-122.0874526</lng> 
    </southwest> 
    <northeast> 
    <lat>37.4251466</lat> 
    <lng>-122.0811574</lng> 
    </northeast> 
    </viewport> 
    </geometry> 
</result> 
</GeocodeResponse> 
XML; 

$dom = new DOMDocument(); 
$dom->loadXml($xml); 
$xpath = new DOMXpath($dom); 

$lat = $xpath->evaluate('number(/GeocodeResponse/result/geometry/location/lat)'); 
$lng = $xpath->evaluate('number(/GeocodeResponse/result/geometry/location/lng)'); 

var_dump($lat, $lng); 

Выход:

float(37.421755) 
float(-122.084633) 
Смежные вопросы