加载格式错误的xml文件

时间:2016-05-17 12:38:25

标签: mysql xml

我打算使用LOAD XML INFILE函数将xml文件加载到我的数据库中。它有效,但我遇到了这种类型的xml的问题:

<response>
   <point id="DP_032113" name="data1" value="18.0"/>
   <point id="DP_042113" name="data2" value="190"/>
   <point id="DP_032753" name="data1" value="14.0"/>
</response>

如果我添加:

ROWS IDENTIFIED BY '<point>'

我得到了结果:子查询返回多行。

如果我不添加此行,我会得到以下结果:0行受影响。

我明白该行&#34; ROWS IDENTIFIED BY&#34;在这种情况下,我不能很好地工作,但我无法更改xml格式的答案,因为它来自Web服务器:/。

您是否知道如何在我的数据库中加载此xml文件?

1 个答案:

答案 0 :(得分:0)

尝试:

档案:'/path/to/file/point.xml'

<response>
   <point id="DP_032113" name="data1" value="18.0"/>
   <point id="DP_042113" name="data2" value="190"/>
   <point id="DP_032753" name="data1" value="14.0"/>
</response>

MySQL命令行:

mysql> DROP TABLE IF EXISTS `point`;
Query OK, 0 rows affected (0.01 sec)

mysql> CREATE TABLE `point` (
    ->   `id`  VARCHAR(9) NOT NULL PRIMARY KEY,
    ->   `name` TEXT,
    ->   `value` DECIMAL(7, 2)
    -> );
Query OK, 0 rows affected (0.00 sec)

mysql> LOAD XML LOCAL INFILE '/path/to/file/point.xml'
    ->   INTO TABLE `point`
    ->   ROWS IDENTIFIED BY '<point>';
Query OK, 3 rows affected (0.00 sec)
Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

mysql> SELECT
    ->   `id`,
    ->   `name`,
    ->   `value`
    -> FROM
    ->   `point`;
+-----------+-------+--------+
| id        | name  | value  |
+-----------+-------+--------+
| DP_032113 | data1 |  18.00 |
| DP_032753 | data1 |  14.00 |
| DP_042113 | data2 | 190.00 |
+-----------+-------+--------+
3 rows in set (0.00 sec)