如何将只带特定标记的XML导入Access数据库?

时间:2012-12-04 21:17:19

标签: xml vba ms-access

我有一个像这样的XML文件:

<Example>
  <A>
    <a1>1</a1>
    <a2>2</a2>
  </A>
  <B>
    <b1>1</b1>
    <b2>2</b2>
    <b3>3</b3>
  </B>
  <B>
  .
  .
  .
  </B>
</Example>

当我使用Application.ImportXML Me.XMLpath, acStructureAndData时,它会同时导入表A和B.那么我怎么能在没有A的情况下导入表B? (A可能是10多个不同的表)。谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

感谢您的提示,以下是我所做的......

Dim db As Database
Set db = CurrentDb()
Dim xDoc As MSXML.DOMDocument
Set xDoc = New MSXML.DOMDocument
Dim xNote As IXMLDOMNode
Dim x As IXMLDOMNodeList
Dim XMLpath, sSQL As String

XMLpath = Me.Text1
xDoc.validateOnParse = False
sSQL = "INSERT INTO Temp VALUES ('"

If xDoc.Load(XMLpath) Then
    Set x = xDoc.getElementsByTagName("_TargetTag")
Else
    MsgBox "XML file ERROR"
    Exit Sub
End If

For j = 0 To x.length - 1
    For i = 0 To lengthOfChildNode
        sSQL = sSQL & x(j).childNodes(i).nodeTypedValue & "','"
    Next i
    sSQL = Left(sSQL, Len(sSQL) - 2) & ");"
    db.Execute sSQL
    sSQL = "INSERT INTO Temp VALUES ('"
Next j

到目前为止,我得到了我需要的东西,但是任何可以改进这些代码的想法我都会非常感激。谢谢!