如何在导入XML之前过滤XML /将其链接到Excel中的地图
我想将XML过滤到一个记录,然后通过将记录链接到地图将记录导入到Excel中。 到目前为止,我只能通过以下方式实现这一目标:
我想知道是否有更简单的方法可以做到这一点,特别是第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>
答案 0 :(得分:0)
给出的代码示例是最好的方法。