1

Googleマップを使用して2点間の距離を計算しようとしています。次のURLがあります。

http://maps.google.com/maps/api/directions/xml?language=fr&origin="+parm1+"&destination="+parm2+"&sensor=false

私はx++でxmlを管理するのはかなり初心者なので、URLから返されたxmlコードを取得し、それを解析して必要なデータ(距離ノード値)を抽出するにはどうすればよいですか。

4

2 に答える 2

1

まず、この回答を参照してください。

次に、ここを見てください:

http://www.axaptapedia.com/Webservice

http://www.axaptapedia.com/XML

その方法は、AX のバージョンによって部分的に異なる場合があります。

于 2012-04-27T06:32:07.603 に答える
0

Janが投稿した2つのリンクをいじってみて、一緒に作業できるはずの何かを手に入れました。「node.hasChildNodes()」に奇妙なことに気づきました。子供がいないのに子供がいると表示されますが、テキストはあります。これで作業できるかどうかを確認してください。

static void XML_WebService_CodeGoogle(Args _args)
{
    System.Net.WebClient webClient = new System.Net.WebClient();
    str google = "http://maps.google.com/maps/api/directions/xml?language=en&origin=85251&destination=46220&sensor=false";
    str retVal = webClient.DownloadString(google);
    XMLDocument doc=XMLDocument::newXml(retVal);


    XmlNamedNodemap     attributes;
    XmlElement          root = doc.root();
    XmlNode             node = root.firstChild();

    str numOfSpaces(int _depth)
    {
        str spc;
        int n;
        ;

        for (n=0; n<=_depth; n++)
            spc+='  ';

        return spc;
    }

    void dig(XmlNode _node, int _depth = 0)
    {
        XmlNode sib;
        ;

        if (_node == null)
            return;

        if (_node.hasChildNodes())
            info(strfmt("%1%2", numOfSpaces(_depth), _node.name()));

        if (_node.hasChildNodes())
            dig(_node.firstChild(), (_depth+1));
        else
            info(strfmt("%1[%2]", numOfSpaces(_depth), _node.innerText()));

        sib = _node.nextSibling();

        if (sib)
            dig(sib);
    }
    ;

    dig(node);
}
于 2012-04-27T19:33:46.127 に答える