【发布时间】:2014-08-21 10:20:04
【问题描述】:
我正在尝试将一些 XML 加载到 MySQL 数据库,但遇到了自关闭标签的问题。一个示例 SQL 来演示我的问题:
CREATE TEMPORARY TABLE `person` (
`name` VARCHAR(75)
);
CREATE TEMPORARY TABLE `individual` LIKE `person`;
LOAD XML INFILE 'document.xml'
INTO TABLE `individual`
ROWS IDENTIFIED BY '<individual>';
LOAD XML INFILE 'document.xml'
INTO TABLE `person`
ROWS IDENTIFIED BY '<person>';
当自闭合标签后跟带有开始和结束标签的元素时,加载按预期工作:
<?xml version="1.0"?>
<document>
<individual name="John Smith"></individual>
<person name="Joe Doe" />
<person name="Jane Doe" />
</document>
SELECT * FROM `individual`;
+------------+
| name |
+------------+
| John Smith |
+------------+
1 row in set
SELECT * FROM `person`;
+----------+
| name |
+----------+
| Joe Doe |
| Jane Doe |
+----------+
2 rows in set
但是在一个元素用自闭标签表示之后,下面的就不会加载了:
<?xml version="1.0"?>
<document>
<individual name="John Smith" />
<person name="Joe Doe" />
<person name="Jane Doe" />
</document>
SELECT * FROM `individual`;
+------------+
| name |
+------------+
| John Smith |
+------------+
1 row in set
SELECT * FROM `person`;
Empty set
如何将具有多个自闭合标签的 XML 文件加载到 MySQL 中?
【问题讨论】: