Excel VBA XML导航

我正在使用Excel 2007中的VBA从一些XML中提取值。下面是数据的示例:

<work_order xmlns="http://www.sample.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.sample.com" id=""> <link rel="self" type="application/xml" href="http://www.sample.com"/> <work_order_info>...</work_order_info> <entry_info>...</entry_info> <posting_info>...</posting_info> <instructions>...</instructions> <address_info>...</address_info> <crew_time> <confirm_date>04 Dec 2013</confirm_date> <minutes_required>100</minutes_required> </crew_time> <wo_products> <wo_product> <product_description>pants</product_description> </wo_product> <wo_product> <product_description>shirt</product_description> </wo_product> <wo_product> <product_description>shoes</product_description> </wo_product> <wo_product> <product_description>hat</product_description> </wo_product> <wo_product> <product_description>DPSB1</product_description> </wo_product> </wo_products> 

我需要做的是循环遍历每个wo_product节点并获取product_description。 我到目前为止是:

 Dim nodeList As IXMLDOMNodeList Dim node As IXMLDOMNode Dim oXMLDoc As MSXML2.DOMDocument Set oXMLDoc = New MSXML2.DOMDocument oXMLDoc.async = False oXMLDoc.Load "http://www.sample.com" Set nodeList = oXMLDoc.SelectNodes("/work_order/wo_products/wo_product") For Each node In nodeList Dim description As String description = node.SelectSingleNode("//product_description").Text MsgBox (description) Next node 

它循环5次,但消息框每次都说“裤子”。 有任何想法吗?

使用description = node.SelectSingleNode("product_description").Text