-1

我必须仅从具有指定坐标的 xml 数据中获取方向信息。这是我的代码

    <?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::__construct() [simplexmlelement.--construct]:实体:第 4 行:解析器错误:需要开始标记,'<' 未找到

当然还有其余的错误。

4

1 回答 1

0

您可以执行以下操作。您编写的 xpath 我在您来自 Google 的响应 XML 中没有找到类似的东西。所以我根据我从谷歌收到的回复给出了提示。我假设您需要<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/>";
}
?>
于 2013-05-09T05:13:23.167 回答