2016-09-26 8 views
0

VBA를 사용하여 XML을 구문 분석하는 데 사용되는 & 경로를 사용하여 머리를 감싸는 데 어려움을 겪고 있습니다. 여기에 내가 아주 간단한 XML을 ...이 같은 VBA (이 다른 유래 질문에서 발견되었다!)의 네임 스페이스를 위로 설정 한 VBA에서 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> 

...

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에 &의 데이터를 가져 오는 구문은 무엇이되어야합니까? (즉, 내 코드의 네임 스페이스 선언에 유의하십시오)

감사합니다.

답변

0

당신은 충분히 가깝습니다! 요소의 수를 얻으려면 OrderID를 사용하면됩니다. Count 속성을 사용하면됩니다. 이와 같이 :

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

많은 감사합니다 ... 내가 필요한 정보의 마지막 비트 (뇌 안개) – peskywinnets