2016-08-04 84 views
0

我想從這個xml代碼片段獲取經度值(-1.914),其中itemfileUID = 2000044在vba中使用xpath查詢[通過Set latitudes = oXMLFile.SelectNodes(「// ViewCoordinates [itemFileUID =' 2000044']/ViewCoordinatePair [@name ='latitude']/@ value「)。]任何人都可以幫忙嗎?訪問屬性值xpath

我已搜索和搜索,但沒有找到一種方法來找到基於同一節點中的元素內容的屬性值。

感謝 湯姆

<schema> 
    <view> 
     <ViewCoordinatesList> 
      <ViewCoordinates> 
       <itemFileUID>2000044</ItemFileUID> 
       <ViewCoordinatePair name="longitude" value="-1.91496237"/> 
       <ViewCoordinatePair name="latitude" value="53.70811065"/> 
       <ViewCoordinatePair name="height" value="136.06"/> 
       <ViewCoordinatePair name="yaw" value="168.083809"/> 
      </ViewCoordinates> 
     </ViewCoordinatesList> 
    </view> 
</schema> 
+0

請注意,您要求'緯度',但在您的示例中提及'-1.914',即'經度'。 – alecxe

+0

@alecxe apologies - 現在更新爲經度 – TomH

+0

vba剪接添加上面鏈接到@alecxe響應 – TomH

回答

2

使用following-sibling axis

//itemFileUID[. = '2000044']/following-sibling::ViewCoordinatePair[@name = 'longitude']/@value 

或者,檢查父:

//ViewCoordinates[itemFileUID = '2000044']/ViewCoordinatePair[@name = 'longitude']/@value 
+0

謝謝你 - 我想msgbox這個值,但失敗? – TomH

+0

@TomH好吧,如何失敗?你在哪裏運行?謝謝。 – alecxe

+0

@alexce - vba - 這將返回一個IXMLDOMSelection,我不知道如何訪問字符串...這不是我的領域,因爲你可以猜測... – TomH

0

這是解決方案:

Set latitude = oXMLFile.SelectNodes("/schema/View/ViewCoordinatesList/ViewCoordinates[ItemFileUID = '2000044']/ViewCoordinatePair[@name = 'longitude']") 
MsgBox latitude(0).getAttribute("value") 

感謝您的幫助