2016-12-29 62 views
0

我想从下面的XML解析纬度和经度,但有多个名称空间。我也没有得到这些价值。代码从VBA中的多个名称空间解析值

<ns2:Search xmlns:ns2="http://www.navteq.com/lbsp/Search-Search/4"> 
<Response> 
<MetaInfo>...</MetaInfo> 
<View xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:SearchResultsViewType"> 
<ViewId>0</ViewId> 
<Result> 
<Relevance>1.0</Relevance> 
<MatchLevel>houseNumber</MatchLevel> 
<MatchQuality>...</MatchQuality> 
<MatchType>pointAddress</MatchType> 
<Location> 
<LocationId>NT_nL.dzNwdSJgdcF4U8dYEiC_yADM</LocationId> 
<LocationType>address</LocationType> 
<DisplayPosition> 
<Latitude>37.37634</Latitude> 
<Longitude>-122.03405</Longitude> 
</DisplayPosition> 
<NavigationPosition>...</NavigationPosition> 
<MapView>...</MapView> 
<Address>...</Address> 
</Location> 
</Result> 
</View> 
</Response> 
</ns2:Search> 

部分:

Dim Request   As New XMLHTTP30 
Dim Results   As New DOMDocument30 
Dim LatitudeNode As IXMLDOMNode 

Results.LoadXML Request.responseText 
Results.setProperty "SelectionNamespaces", "xmlns:ns2='http://www.navteq.com/lbsp/Search-Search/4'" 

Set LatitudeNode = Results.SelectSingleNode("/ns2:Search/ns2:Response/ns2:View/ns2:Result/ns2:Location:/ns2:DisplayPosition/ns2:Latitude") 

回答

0

我不明白,为什么你选择了未实际文件前缀在你的XPath前缀节点。无论如何,对我来说这个作品

Set LatitudeNode = Results.SelectSingleNode("ns2:Search/Response/View/Result/Location/DisplayPosition/Latitude")