2013-05-08 2 views
-1

Я должен получить информацию о направлении только из данных xml с указанными координатами. Вот мой кодсинтаксический анализ xml данных из google maps api

<?php 
$string= simplexml_load_file("http://maps.googleapis.com/maps/api/directions/xml?origin=37.036543,35.288086&destination=36.997415,35.288067&sensor=false"); 
    print_r ($string); 
    $xml = new SimpleXMLElement($string); 

    $result = $xml->xpath('/WebServiceRequest/result[2]/message/text()'); 

    while(list(, $node) = each($result)) { 
     echo 'b/c: ',$node,"\n"; 
    } 
    ?> 

, но я получаю следующее сообщение об ошибке: Внимание: SimpleXMLElement :: __ конструкт() [SimpleXMLElement .-- сооружать]: Объект: строка 4: Ошибка синтаксического анализа: открывающий тег ожидается, '<' не найдено в

и, конечно, есть остальная часть ошибки.

ответ

0

Вы можете сделать ниже реализации. Xpath, который вы написали, я не нашел ничего подобного в ответе XML от Google. Поэтому я дал подсказку, основываясь на том, что я получаю от Google. Я предположил, что вам нужен элемент <step> и его дети для реализации/решения ваших требований. Ниже вы можете внести необходимые изменения в соответствии с вашим дополнительным требованием, и ниже готово к запуску.

Я также поставил print_r($item) для вашей цели отладки. Так что взгляните на это также.

<?php 
$xml = simplexml_load_file("http://maps.googleapis.com/maps/api/directions/xml?origin=37.036543,35.288086&destination=36.997415,35.288067&sensor=false"); 
$result = $xml->xpath('//step'); 

foreach($result as $item){ 
    //echo "<pre>";print_r($item); 
    echo "travel_mode::".$item->travel_mode; 
    echo "<br/>start_location::"; 
     //child elements of start_location element 
     foreach($item->start_location as $child) 
     { 
      echo "<br/>lat::".$child->lat; 
      echo "<br/>lng::".$child->lng; 
     } 
     //like above you can get other elements as well their child elements too. 
    echo "<hr/>"; 
} 
?> 
+0

Благодарим за помощь. Это работает хорошо. – BKadmin

Смежные вопросы