使用VBA将XML导入带有xslt转换文件的MS Access
问题描述:
我试图将一堆.xml文件导入到Access表中。我创建了一个.xslt文件,当我在Access中手动运行导入时,它可以正常工作。但是当我尝试使用VBA代码(我从另一篇文章中提取)来转换.xml文件时,生成的temp.xml文件完全是空的。我错过了什么?使用VBA将XML导入带有xslt转换文件的MS Access
Public Sub TransformAndImportMultipleXMLs()
Dim strFile As String, strPath As String
Dim xmlDoc As New MSXML2.DOMDocument60
Dim xslDoc As New MSXML2.DOMDocument60
Dim newDoc As New MSXML2.DOMDocument60
strPath = "y:\"
strFile = Dir(strPath & "*.xml")
xslDoc.async = False
xslDoc.validateOnParse = False
xslDoc.resolveExternals = False
xslDoc.Load "C:\JSTAdb\LinkIncidentID.xslt"
While strFile <> ""
' REINITIALIZE DOM OBJECTS
Set xmlDoc = New MSXML2.DOMDocument60
Set newDoc = New MSXML2.DOMDocument60
' LOAD XML SOURCE
xmlDoc.Load strPath & strFile
' TRANSFORM SOURCE
xmlDoc.transformNodeToObject xslDoc, newDoc
newDoc.Save "C:\JSTAdb\temp.xml"
' APPEND TO TABLES
Application.ImportXML "C:\JSTAdb\temp.xml", acAppendData
strFile = Dir()
Wend
'RELEASE DOM OBJECTS
Set xmlDoc = Nothing: Set xslDoc = Nothing: Set newDoc = Nothing
End Sub
答
我想通了。 .xml文件来自InfoPath表单并包含大量照片附件。我没有等待足够长的时间才能将结果转化。我只是需要一点耐心。现在工作正常。
请发布示例XML和XSLT。另外,你如何*在Access *中手动运行导入? – Parfait