XML文件到PHPMyAdmin数据库

时间:2015-07-03 01:51:19

标签: xml phpmyadmin

我有一个XML文件(第一个条目的片段加上下面的标题),我想把它放到一个新创建的数据库中。看起来XML至少会有两个不同的表。

我希望它也忽略一些我不需要的特定行。

另外,我应该先创建表和列吗?或者界面可以为我创建它们吗?

{{1}}

这个XML文件有超过11,000个条目,因此手动输入它们是不可能的。

1 个答案:

答案 0 :(得分:0)

您必须先对文件进行一些操作。确实,phpMyAdmin可以导入和导出XML数据,但phpMyAdmin使用的格式与您当前存在的数据格式不同。

关于XML数据的不幸之处在于XML为任何类型的数据提供了很好的包装,但是对于系统之间的互操作性,它要求两个系统使用相同的方言,在实际情况下我几乎看不到实际的方法。 / p>

是否有可能通过其他方式获取数据 - 例如,导出为其他格式?

这是一个phpMyAdmin如何期望格式化数据的示例;你可以通过导出现有表来查看更多细节,因为我只从中间选了一点。

<database name="stackoverflowtest">
    <table name="tblUsers">
        <column name="id">1</column>
        <column name="name">Bob</column>
    </table>
    <table name="15">
        <column name="id">2</column>
        <column name="name">Jim</column>
    </table>
</database>

如果您无法以其他格式获取数据,我建议使用一些文本解析器来操作您拥有的数据。我认为CSV可能是一种更好的格式供你导入使用,有些工作你可以想出一个awk / sed / perl / python脚本来提出你需要的格式(或者可能是任何其他语言,但那些常用于处理文本文件)。您甚至可以找到一个XML解析库函数,它可以让您将XML文件作为实际的XML属性读取,而不必自己解析它。这可能是理想的解决方案,但即使没有它,您也可以查找包含<year></year>的每一行,并从中间提取数据。添加逗号,然后重复<data_start_date>,依此类推,直至到达<report> / </report>块的末尾并添加换行符。对整个XML文件进行循环,您将拥有格式良好的CSV文件,phpMyAdmin将很乐意加载该文件。 MySQL本身使用略微不同的XML(仍然与您可用的不同);看起来更像是

<row>
    <field name="id">1</field>
    <field name="name">Bob</field>
</row>
<row>
    <field name="id">2</field>
    <field name="name">Jim</field>
</row>

我认为这比使用XML更容易。不幸的是,解决方案需要一些工作,但希望我已经为您提供了一些资源。有无数的教程和使用我提到的用于操作文件的工具的示例,但我再次建议首先查看XML友好的Python,Perl甚至PHP库。