首先让我说,我知道不加载到MySQL中的XML文件是StackOverflow上的常见话题。我查看了其中的四十个,并且学到了一些东西,但是我还没有解决我的问题。 背景:我将Mac与High Sierra搭配使用,并安装了MySql版本, 版本:5.7.9 InnoDB版本:5.7.9 选项文件设置: 字符集服务器:utf8 整理服务器:utf8_general_ci utf8中保存的xml文件
这是我的XML文件test2.xml:
<?xml version="1.0" encoding="utf-8" ?>
<col1 col1_name="Hi!">
<col2>Here<></col2>
<col3>Also Here</col3>
</col1>
<col1 col1_name="High!">
<col2>Still here</col2>
<col3>Remaining Here</col3>
</col1>
<col1 col1_name="High5">
<col2>Not here</col2>
<col3>Gone</col3>
</col1>
这是使用表joe创建数据库游乐场的MySQL代码:
CREATE DATABASE playground
CHARACTER SET = utf8 COLLATE =utf8_general_ci;
USE playground;
CREATE TABLE joe
(col1 VARCHAR(20), col2 VARCHAR(20), col3 VARCHAR(20);
这只是无效的代码片段之一:
USE playground;
SHOW WARNINGS;
LOAD XML LOCAL INFILE "~/Desktop/test2.xml"
INTO TABLE joe ROWS IDENTIFIED BY '<col1.>';
我也尝试过以这种方式格式化xml:
<row>
<field name='col1'>Looking</field>
<field name='col2'>Here</field>
<field name='col3'>Also Here</field>
</row>
<row>
<field name='col1'>Checking</field>
<field name='col2'>Still here</field>
<field name='col3'>Remaining Here</field>
</row>
,将MySQL代码的最后一行更改为 以“ MySQL Workbench显示“受影响的0行”。没有警告。日志中没有任何内容 到目前为止没有任何工作。在搜索堆栈溢出时,我找到以下链接:How import xml files with mysql LOAD XML LOCAL INFILE我复制并粘贴了此人的xml和MySQL代码,它们为我工作。但是,我无法从他的工作代码片段中找到我破碎的片段。 在MySQL.com上,我发现有时不同的字符集会阻止xml导入。我的xml和数据库现在使用相同的字符集,但这并不能解决我的问题。 我发现堆栈之外的任何内容都无济于事。 我在xml中有大量信息可以导出到MySQL。将其转换为以逗号分隔的格式是不切实际的,而且恐怕也不行。 谢谢您的宝贵时间。