使用转换文件将XML文件导入MS Access
我正在尝试将一个XML文件导入到MS Access中,我已经广泛地搜索了一个类似于我的示例,但我没有找到。在没有XSLT文件的情况下导入的结果是,我只获取第一行值。例如,我得到两个表:ABC和DEF,两个表中都只有第一个值('1234567891011'和'12116360102')。理想情况下,我想要的是一个包含两个字段(ABC和DEF)的表,其中包含所有相应的值。我可以创建两个单独的表,但这并不理想,因为我有多个XML文件,在一个表中为每个XML文件管理它们会更容易。下面是XML的一个示例。任何帮助都将不胜感激使用转换文件将XML文件导入MS Access,xml,ms-access,import,Xml,Ms Access,Import,我正在尝试将一个XML文件导入到MS Access中,我已经广泛地搜索了一个类似于我的示例,但我没有找到。在没有XSLT文件的情况下导入的结果是,我只获取第一行值。例如,我得到两个表:ABC和DEF,两个表中都只有第一个值('1234567891011'和'12116360102')。理想情况下,我想要的是一个包含两个字段(ABC和DEF)的表,其中包含所有相应的值。我可以创建两个单独的表,但这并不理想,因为我有多个XML文件,在一个表中为每个XML文件管理它们会更容易。下面是XML的一个示例。
<Codes>
<ABC>
<Value>1234567891011</Value>
<Value>1234567891110</Value>
<Value>1234567891022</Value>
</ABC>
<DEF>
<Value>12116360102</Value>
<Value>65416360402</Value>
<Value>68559760202</Value>
</DEF>
</Codes>
1234567891011
1234567891110
1234567891022
12116360102
65416360402
68559760202
确实考虑了声明性、专用性、语言(与SQL相同的类型),旨在将XML文件从各种结构转换为最终的使用格式,包括其他XML、HTML、甚至TXT/CSV文件。p>
具体地说,您需要为文档中的每个值节点将根的子节点(ABC、DEF等)迁移到一个新的类似节点的源中。将XSLT中的
更改为MS Access中所需的表名,并将
更改为新表中所需的字段名
XSLT脚本(另存为.xsl文件以加载到VBA中)
XML输出
<?xml version="1.0" encoding="utf-8"?>
<Codes>
<mytable>
<Source>ABC</Source>
<Value>1234567891011</Value>
</mytable>
<mytable>
<Source>ABC</Source>
<Value>1234567891110</Value>
</mytable>
<mytable>
<Source>ABC</Source>
<Value>1234567891022</Value>
</mytable>
<mytable>
<Source>DEF</Source>
<Value>12116360102</Value>
</mytable>
<mytable>
<Source>DEF</Source>
<Value>65416360402</Value>
</mytable>
<mytable>
<Source>DEF</Source>
<Value>68559760202</Value>
</mytable>
</Codes>
如果没有XSLT文件,我希望必须使用VBA将文件作为文本文件对象打开,并读取每一行并将数据写入表中。谢谢!成功了!我的目标是为我们团队中的一些非技术人员创建一个简单的解决方案,我担心这个解决方案涉及到让他们运行VBA,但是简单地使用XSLT转换导入将对他们很好。很高兴听到这个消息。很高兴我能帮忙。请接受解决方案(在侧面打勾)以确认解决方案!谢谢你的冻糕!您如何将这种方法应用于更复杂的任务,即遍历包含多个XML文件的封闭文件夹结构(如()所示)?
<?xml version="1.0" encoding="utf-8"?>
<Codes>
<mytable>
<Source>ABC</Source>
<Value>1234567891011</Value>
</mytable>
<mytable>
<Source>ABC</Source>
<Value>1234567891110</Value>
</mytable>
<mytable>
<Source>ABC</Source>
<Value>1234567891022</Value>
</mytable>
<mytable>
<Source>DEF</Source>
<Value>12116360102</Value>
</mytable>
<mytable>
<Source>DEF</Source>
<Value>65416360402</Value>
</mytable>
<mytable>
<Source>DEF</Source>
<Value>68559760202</Value>
</mytable>
</Codes>
Source Value
ABC 1234567891011
ABC 1234567891110
ABC 1234567891022
DEF 12116360102
DEF 65416360402
DEF 68559760202