【发布时间】:2016-06-28 01:50:39
【问题描述】:
我有一个最初从 XML 导入的访问表。当我导出它时,我没有与原始 XML 表相同的 XML 结构。
原来导入的表格如下:
<?xml version="1.0" standalone="true"?>
<profiling>
<program>
<name>118CDSpro</name>
<p1on>1</p1on>
<p1tool>36</p1tool>
<p2on>OFF</p2on>
<cut>OFF</cut>
<rule>OFF</rule>
<desc>118 Clad DirectSet Profile</desc>
<pic>akv.bmp</pic>
<ten>dilec_F</ten>
</program>
<profiling/>
这是我在导出中得到的:
<?xml version="1.0" encoding="UTF-8"?>
<dataroot generated="2016-06-27T12:16:29" xmlns:od="urn:schemas microsoft-com:officedata">
<Profiling>
<name>Din_C92S_pro2</name>
<p1on>1</p1on>
<p1tool>40</p1tool>
<p2on>OFF</p2on>
<cut>OFF</cut>
<rule>OFF</rule>
<desc>Inswing Door Sash Profile 2 (Storm)</desc>
<ten>dilec_F</ten>
</Profiling>
</dataroot>
我认为问题出在 .xsl 文件中,但我是 VBA 新手,不确定如何使用它。
此代码必须非常具体地针对原始格式。
任何建议将不胜感激。
选项 2 代码:
Sub ProfileXML2()
' RAW XML EXPORT
Application.ExportXML acExportTable, "Profiling", "C:\MyData\Crafter 0610\Crafter\MACHINE\SCHEMAS\ProfileExport.xml"
' TRANSFORM RAW XML (OPTION 2 - full XSLT processor)
Dim xmlDoc As Object, xslDoc As Object, newDoc As Object
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
Set xslDoc = CreateObject("MSXML2.DOMDocument")
Set newDoc = CreateObject("MSXML2.DOMDocument")
' LOAD XML AND XSL FILES
xmlDoc.Load "C:\MyData\Crafter 0610\Crafter\MACHINE\SCHEMAS\ProfileExport.xml"
xmlDoc.async = False
xslDoc.Load "C:\MyData\Crafter 0610\Crafter\MACHINE\SCHEMAS\ProfilingSchema.xsl"
xslDoc.async = False
' TRANSFORM SOURCE TO FINAL
xmlDoc.transformNodeToObject xslDoc, newDoc
newDoc.Save "C:\MyData\Crafter 0610\Crafter\DATA\ProfilingTest.xml"
Set newDoc = Nothing
Set xslDoc = Nothing
Set xmlDoc = Nothing
End Sub
【问题讨论】: