将XML数据导入Access的问题

时间:2015-02-13 23:33:24

标签: c xml perl ms-access

我正在寻找一种将XML数据导入Access数据库的方法。目前我尝试通过Access中的XML导入选项卡导入文件,但不幸的是,这只返回3个空白表。这是我第一次使用XML,所以我不太了解将此类数据导入数据库的标准过程。我已经读过这些文件需要通过"过程"在将它们插入任何数据库之前,这通常需要一些编程技巧才能这样做。当我过去用谷歌搜索过这篇文章时,我会收到很多关于使用Perl来解析文件的文章,但是还没有找到很多具体的例子告诉我如何做到这一点。

我想我的问题是,我需要做什么?我需要创建一个标准的代码块才能使文件"访问可接受"?我现在非常愿意做任何事情。

1 个答案:

答案 0 :(得分:1)

XML数据是一种自由格式的数据类型,其中节点或元素,属性,标签可以以任何格式定位。只要遵循标记规则,设计类型仅限于设计者的想象力。由于这种性质,必须转换复杂的XML数据以适应数据库的二维结构。

访问表,Excel电子表格,CSV文件,R数据框架,SAS数据集需要行和列的表格格式:

      Field1 Field2 Field3
row1   data   data   data
row2   data   data   data

在XML中,这相当于:

<row1>
   <field1>data</field1>
   <field2>data</field2>
   <field3>data</field3>
</row1>

<row2>
   <field1>data</field1>
   <field2>data</field2>
   <field3>data</field3>
</row2>

这与html表非常相似:

<table>
    <tr>
        <th>Header1</th>
        <th>Header2</th>
        <th>Header3</th>
    </tr>
    <tr>
        <td>Data1</td>
        <td>Data2</td>
        <td>Data3</td>
    </tr>
</table>

导入后看到空白表的原因是因为XML的结构没有充分地与二维行和列结构对齐,或者XML数据驻留在属性而不是元素中。您可能有多个嵌套树结构。元素中列出的数据:<item>data</item>和属性:<item attribute="data"></item>。还有更多的细微差别。注意:Access只能导入element-centric而不是以属性为中心的xml。

几乎所有编程语言(Python,R,PHP,C,C ++,C#,Java,Ruby,甚至Perl和VBA)都有一个包,模块,库等来解析和转换xml文件,跨节点迭代提取数据或其他数据处理程序。你基本上需要做的是:

  1. 解析XML文件以评估其整体结构或 你需要的部件
  2. 编码转换/解析器解决方案以获取     xml数据的表格格式。我更喜欢xsl transformation
  3. 转换为原始xml以转换xml或csv / txt / xlsx并导入 访问。在Access VBA中,您可以使用: Application.ImportXMLApplication.TransformXML和VBA的将军Load XML
  4. 我希望这会有所帮助。祝你好运!