Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将XML文件复制到PHPMyAdmin数据库_Xml_Phpmyadmin - Fatal编程技术网

将XML文件复制到PHPMyAdmin数据库

将XML文件复制到PHPMyAdmin数据库,xml,phpmyadmin,Xml,Phpmyadmin,我有一个XML文件(下面是第一个条目加上标题的片段),我想把它放到一个新创建的数据库中。看起来XML将至少包含两个不同的表 我希望它也忽略一些我不需要的特定行 另外,我应该先创建表和列吗?或者界面可以为我创建它们吗 <?xml version="1.0" encoding="UTF-8" ?> <npidata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation=

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

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

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

<?xml version="1.0" encoding="UTF-8" ?>
<npidata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.npi.gov.au/includes/download/npi-data-download.xsd">
<report>
    <year>2014</year>
    <registered_business_name>W H HECK &amp; SONS PTY LTD</registered_business_name> - IGNORE
    <abn>91009661401</abn> - IGNORE
    <acn>009661401</acn> - IGNORE
    <sub_threshold>N</sub_threshold>
    <data_start_date>2013-07-01</data_start_date>
    <data_end_date>2014-06-30</data_end_date>
    <first_published_date>2015-03-31</first_published_date>
    <last_updated_date>2015-03-31</last_updated_date>
    <number_of_employees>55</number_of_employees> - IGNORE
    <facility_name>Rocky Point Sugarmill</facility_name>
    <jurisdiction_facility_id>Q014HEK001</jurisdiction_facility_id> - PRIMARY KEY
    <jurisdiction>QLD</jurisdiction> - IGNORE
    <site_address_street>MILL RD</site_address_street> - IGNORE
    <site_address_suburb>Woongoolba</site_address_suburb>
    <site_address_state>QLD</site_address_state>
    <site_address_postcode>4207</site_address_postcode>
    <main_activities>Sugarmilling</main_activities>
    <site_latitude>-27.735666</site_latitude>
    <site_longitude>153.327611</site_longitude>
    <anzsic_codes> - IGNORE
        <anzsic_code> - IGNORE
            <type>Primary</type><code>1181</code> - IGNORE
            <name>Sugar Manufacturing</name> - IGNORE
        </anzsic_code> - IGNORE
    </anzsic_codes> - IGNORE
    <public_contact> - IGNORE
        <title>Mr</title>
        <name>David</name> - IGNORE
        <surname>Heck</surname> - IGNORE
        <position>Managing Director</position> - IGNORE
        <phone>(07) 5547 4500</phone> - IGNORE
        <fax>(07) 5546 1233</fax> - IGNORE
        <email>david@heckgroup.com.au</email> - IGNORE
    </public_contact> - IGNORE
    <emissions>
        <emission>
            <substance>Ethanol</substance>
            <destination>Water</destination>
            <quantity_in_kg>19518</quantity_in_kg>
            <mass_balance_estimation>N</mass_balance_estimation>
            <engineering_calculations_estimation>Y</engineering_calculations_estimation>
            <direct_measurement_estimation>N</direct_measurement_estimation>
            <emission_factors_estimation>N</emission_factors_estimation>
            <approved_alternative_estimation>N</approved_alternative_estimation>
        </emission>
        <emission>
            <substance>Ethanol</substance>
            <destination>Air Fugitive</destination>
            <quantity_in_kg>2114.45</quantity_in_kg>
            <mass_balance_estimation>N</mass_balance_estimation>
            <engineering_calculations_estimation>Y</engineering_calculations_estimation>
            <direct_measurement_estimation>N</direct_measurement_estimation>
            <emission_factors_estimation>N</emission_factors_estimation>
            <approved_alternative_estimation>N</approved_alternative_estimation>
        </emission>
        <emission>
            <substance>Ethanol</substance>
            <destination>Air Total</destination>
            <quantity_in_kg>2114.45</quantity_in_kg>
        </emission>
        <emission>
            <substance>Hydrochloric acid</substance>
            <destination>Land</destination>
            <quantity_in_kg>2282.95</quantity_in_kg>
            <mass_balance_estimation>N</mass_balance_estimation>
            <engineering_calculations_estimation>Y</engineering_calculations_estimation>
            <direct_measurement_estimation>N</direct_measurement_estimation>
            <emission_factors_estimation>N</emission_factors_estimation>
            <approved_alternative_estimation>N</approved_alternative_estimation>
        </emission>
        <emission>
            <substance>Particulate Matter 10.0 um</substance>
            <destination>Air Fugitive</destination>
            <quantity_in_kg>398.91285</quantity_in_kg>
            <mass_balance_estimation>N</mass_balance_estimation>
            <engineering_calculations_estimation>Y</engineering_calculations_estimation>
            <direct_measurement_estimation>N</direct_measurement_estimation>
            <emission_factors_estimation>N</emission_factors_estimation>
            <approved_alternative_estimation>N</approved_alternative_estimation>
        </emission>
        <emission>
            <substance>Particulate Matter 10.0 um</substance>
            <destination>Air Total</destination>
            <quantity_in_kg>398.91285</quantity_in_kg>
        </emission>
    </emissions>
    <transfers></transfers> - IGNORE
    <pollution_control_devices></pollution_control_devices> - IGNORE
    <cleaner_production_activities></cleaner_production_activities> - IGNORE
</report>

此XML文件有11000多个条目,因此手动输入它们是不可能的。

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

关于XML数据的不幸之处在于,XML对于任何类型的数据都是一个很好的包装器,但对于系统之间的互操作性,它要求两个系统使用相同的方言,而我几乎从未看到在实际情况下实际可行

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

下面是一个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>

1.
上下快速移动
2.
吉姆
如果您无法以另一种格式获取数据,我建议使用一些文本解析器来处理您现有的数据。我认为CSV可能是一种更好的导入格式,通过一些工作,您可以编写一个awk/sed/perl/python脚本,以获得所需的格式(或者可能是任何其他语言,但这些语言通常用于操作文本文件)。您甚至可能会发现一个XML解析库函数,它允许您将XML文件作为实际的XML属性读取,而不必自己解析它。这可能是理想的解决方案,但即使没有它,您也可以查找包含
的每一行,并从中间提取数据。添加逗号,然后对
重复,依此类推,直到到达
/
块的末尾并添加换行符。在整个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>

1.
上下快速移动
2.
吉姆

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

XML是静态数据。它不创建任何内容,但它已被创建。你至少需要一些在你的问题中完全缺失的软件或程序。一个问答网站不能只满足发布要求,但你需要问一个关于编程的具体问题。那么,您面临的具体编程问题是什么?还是你刚刚遇到了一个支持问题?