MySQL XML加载在本地和在线文件之间产生意外结果

时间:2014-12-23 14:52:01

标签: mysql xml

我正在尝试将部分XML文件加载到localhost上的MySQL数据库中。 我的表创建查询是:

CREATE TABLE IF NOT EXISTS `vacations`(
`type` varchar(255) NOT NULL,
`region` varchar(255) NOT NULL,
`startdate` date NOT NULL,
`enddate` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

xml文件位于: http://opendata.rijksoverheid.nl/v1/sources/rijksoverheid/infotypes/schoolholidays?output=xml

我还复制了该页面上的文本并将其保存在LOCAL xml文件中。

现在当我使用ONLINE xml文件

填充我的表时使用以下查询
LOAD XML LOCAL INFILE 'http://opendata.rijksoverheid.nl/v1/sources/rijksoverheid/infotypes/schoolholidays?output=xml' 
INTO TABLE vacations
ROWS IDENTIFIED BY '<vacation>'

我的表格将填充以下数据:

('schoolvakanties', 'zuid', '2013-10-11', '2013-10-20'), ('schoolvakanties', 'heel Nederland', '2013-12-20', '2014-01-05'), ('schoolvakanties', 'zuid', '2014-02-14', '2014-02-23'), ('schoolvakanties', 'heel Nederland', '2014-04-25', '2014-05-05'), ('schoolvakanties', 'zuid', '2014-07-11', '2014-08-24'), ('schoolvakanties', 'zuid', '2014-10-17', '2014-10-26'), ('schoolvakanties', 'heel Nederland', '2014-12-19', '2015-01-04'), ('schoolvakanties', 'zuid', '2015-02-13', '2015-02-22'),

请注意,这不是所有数据,只有前8行

现在,当我用LOCAL xml文件中的数据填充表格时

LOAD XML LOCAL INFILE 'absolute_path_to_file\\thevacation.xml' 
INTO TABLE vacations
ROWS IDENTIFIED BY '<vacation>'

我将在表格中获得以下数据:

('\r\nHerfstvakantie\r\n', 'zuid', '2013-10-11', '2013-10-20'), ('\r\n', 'heel Nederland', '2013-12-20', '2014-01-05'), ('\r\n', 'zuid', '2014-02-14', '2014-02-23'), ('\r\n', 'heel Nederland', '2014-04-25', '2014-05-05'), ('\r\n', 'zuid', '2014-07-11', '2014-08-24'), ('\r\n', 'zuid', '2014-10-17', '2014-10-26'), ('\r\n', 'heel Nederland', '2014-12-19', '2015-01-04'), ('\r\n', 'zuid', '2015-02-13', '2015-02-22'), ('\r\n', 'heel Nederland', '2015-05-01', '2015-05-10'),

请注意,这不是所有数据,只有前8行

正如您所看到的,当它从LOCAL xml文件中获取数据时,它将采用我指定的类型标记,即标记内的类型标记。但是当我从ONLINE页面获取数据时,它只会从它看到的第一个标记中获取数据。

任何人都可以向我解释为什么会这样做,以及我如何解决这个问题。因为我宁愿从该网页获取数据,而不是从本地文件中获取数据。

谢谢

0 个答案:

没有答案