2016-09-26 95 views
0

我正在努力圍繞命名空間打包我的頭&使用VBA解析XML的路徑。在這裏,我有一些非常簡單的XML ...使用正確的名稱空間路徑解析XML(在VBA中)

<?xml version="1.0"?> 
<GetOrdersResponse 
xmlns="urn:ebay:apis:eBLBaseComponents"> 
<Timestamp>2016-09-26T08:49:18.274Z</Timestamp> 
Ack 
<Version>983</Version> 
<Build>E983_INTL_APIXO_18098703_R1</Build> 
<OrderArray> 
    <Order> 
     <OrderID>252363798635-1903344147015</OrderID> 
     <OrderStatus>Completed</OrderStatus> 
    </Order> 
    <Order> 
     <OrderID>261505550993-1887803672016</OrderID> 
     <OrderStatus>Completed</OrderStatus> 
    </Order> 
</OrderArray> 
</GetOrdersResponse> 

我已在VBA這樣的(這是從另一個計算器問題找到了!)的命名空間了......

Dim xmlNamespaces As String 
xmlNamespaces = "xmlns:doc='urn:ebay:apis:eBLBaseComponents'" 
objxmldoc.SetProperty "SelectionNamespaces", xmlNamespaces 
objxmldoc.SetProperty "SelectionLanguage", "XPath" 

我的問題是我如何參考我需要的實際XML數據字段?

這裏有一個命令我通常使用...

Set Ordercount = objxmldoc.selectNodes("//OrderID") 
Debug.Print "Total Number of Orders : " & Ordercount.length 

,但它返回的計數爲0,所以顯然我的參考路徑是錯誤的 - 它的語法(「//訂單ID」),我是不確定。那麼在上面粘貼的XML中插入&的數據的語法應該是什麼? (即記住我的代碼的名稱空間聲明)

非常感謝。

回答

0

你已經夠接近了!如果你想獲得元素數量:OrderID,你可以簡單地使用Count屬性。像這樣:

Ordercount = objxmldoc.selectNodes("//OrderID").Count 
Debug.Print "Total Number of Orders : " & Ordercount 
+0

非常感謝......這是我需要的最後一點信息(腦霧) – peskywinnets