-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 にそのようなものは見つかりませんでした。そこで、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/>";
}
?>
于 2013-05-09T05:13:23.167 に答える