1
其鏈接到地圖我怎樣才能導入前篩選XML /它鏈接到地圖中的Excel我怎樣才能導入前篩選XML/Excel中
我想一個XML過濾到一個記錄然後通過將其鏈接到地圖來將該記錄導入到excel中。 現在我只能通過執行以下操作做到這一點:
- 用XPath表達式過濾所述節點IXMLDOMNode
- 獲取節點
- 擴展根節點標籤字符串的XML字符串
- 字符串指定與.ImportXml地圖(...)
我不知道是否有這樣做更簡單的方法,尤其是第3步(延長線)似乎是一點點複雜。
備註:示例xml取自「Excel 2007 VBA程序員參考」。
提前感謝
安德烈
VBA代碼:
Sub FilterNode()
Dim oXmlDoc As DOMDocument60
Dim oXmlNode As IXMLDOMNode
Dim strXml As String
Dim oMap As XmlMap
'Filter xml
Set oXmlDoc = New DOMDocument60
oXmlDoc.async = False
oXmlDoc.Load (ThisWorkbook.Path & "\EmployeeSales.xml")
Set oXmlNode = oXmlDoc.SelectSingleNode("//Employee[Empid=24601]")
strXml = oXmlNode.XML
'Extend xml String
'is this really necessary?
strXml = "<EmployeeSales>" & vbCrLf & strXml & vbCrLf & "</EmployeeSales>"
'link xml with map
Set oMap = ThisWorkbook.XmlMaps(2)
oMap.ImportXml (strXml)
End Sub
示例XML:
<?xml version="1.0"?>
<EmployeeSales>
<Employee>
<Empid>2312</Empid>
<FirstName>Mike</FirstName>
<LastName>Alexander</LastName>
<InvoiceNumber>100</InvoiceNumber>
<InvoiceAmount>2300</InvoiceAmount>
</Employee>
<Employee>
<Empid>24601</Empid>
<FirstName>Stephen</FirstName>
<LastName>Bullen</LastName>
<InvoiceNumber>200</InvoiceNumber>
<InvoiceAmount>3211</InvoiceAmount>
</Employee>
</EmployeeSales>
thx for your remark – Andre