【发布时间】:2017-02-03 13:16:18
【问题描述】:
我正在努力思考使用 VBA 解析 XML 的命名空间和路径。这里我有一些非常简单的 XML...
<?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 中设置了命名空间(这是从另一个 stackoverflow 问题中找到的!)...
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,所以很明显我的参考路径是错误的 - 这是我不确定的语法(“//OrderID”)。那么在上面粘贴的 XML 中提取 & 的数据的语法应该是什么? (即记住我的代码的命名空间声明)
非常感谢。
【问题讨论】:
标签: xml vba namespaces ebay-api xml-documentation