0

Google マップ API を使用して 2 点間の走行距離を定義しようとしています。XMLDOM オブジェクトにロードした XML を返します。ただし、子内の子内の子の値を取得する方法がどこにも見つからないようです...マイクロソフトのチュートリアルを読みましたが、XML から値を取得する方法が示されていません。

XML の例は次のとおりです。

<DistanceMatrixResponse>
<status>OK</status>
<origin_address>Gentsesteenweg 5, 9200 Dendermonde, België</origin_address>
<destination_address>Veerstraat 39, 9200 Dendermonde, België</destination_address>
<row>
    <element>
        <status>OK</status>
        <duration>
            <value>117</value>
            <text>2 min.</text>
        </duration>
        <distance>
            <value>1061</value>
            <text>1,1 km</text>
        </distance>
    </element>
</row>
</DistanceMatrixResponse>

私のコードの一部は次のとおりです。

Set XmlObj = Server.CreateObject("Microsoft.XMLHTTP")
strURL = "http://maps.googleapis.com/maps/api/distancematrix/xml?origins=" & dblFromLatitude & "+" & dblFromLongitude & "&destinations=" & dblToLatitude & "+" & dblToLongitude & "&mode=driving&language=" & strLanguage & "&sensor=false"
'DebugFile strURL
XmlObj.Open "POST", strURL, false
XmlObj.send      
strResponse = XmlObj.responseText
Set XmlObj = Nothing


Set xmlLongLat = Server.CreateObject("Microsoft.XMLDOM")
xmlLongLat.async=false
xmlLongLat.loadXML(strResponse)

If Not xmlLongLat.GetElementsByTagName("DistanceMatrixResponse")(0).ChildNodes(0).GetElementsByTagName("row")(0).ChildNodes(0).GetElementsByTagName("element")(0).ChildNodes(0).GetElementsByTagName("distance")(0).ChildNodes(0) Is Nothing Then

    dblDrivingDistance = Round(CDbl(Nz(xxmlLongLat.GetElementsByTagName("DistanceMatrixResponse")(0).ChildNodes(0).GetElementsByTagName("row")(0).ChildNodes(0).GetElementsByTagName("element")(0).ChildNodes(0).GetElementsByTagName("distance")(0).ChildNodes(0).NodeValue, 0))/1000,2)
Else 'xmlLongLat.GetElementsByTagName("element")(0) Is Nothing Then
    dblDrivingDistance = 0
    DebugFile "fgfzefzef"
End If 'xmlLongLat.GetElementsByTagName("element")(0) Is Nothing Then

Set xmlLongLat = Nothing    

「距離」の「値」を取得したいのですが、あらゆることを試してもうまくいかないようです

4

1 に答える 1

0
xmlDoc.setProperty "SelectionLanguage", "XPath"
node = xmlDoc.selectSingleNode("/row/elelemnt/distance/value").innerText

または類似- XPath で遊ぶ

于 2013-04-16T03:05:17.707 に答える