【发布时间】:2017-05-17 13:00:24
【问题描述】:
我在使用 LOAD XML INFILE 将 XML 加载到数据库表中时遇到问题。我的 XML 文件的一个示例是:
<?xml version="1.0" encoding="UTF-8"?>
<ProductList>
<Product>
<SKU>ABC123</SKU>
<Description>The product name</Description>
<Images>
<Name>ABC123.JPG</Name>
<ImagePath Type="Large">path/to/large/ABC123.JPG</ImagePath>
<ImagePath Type="Small">path/to/small/ABC123.JPG</ImagePath>
</Images>
</Product>
</ProductList>
我有一个数据库表定义为:
CREATE TABLE `images` (
`SKU` varchar(25) NULL,
`Name` varchar(100) NULL,
`Large` varchar(100) NULL,
`Small` varchar(100) NULL,
KEY `Sku` (`SKU`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
我正在使用以下查询来加载:
LOAD XML INFILE '/path/to/xml'
INTO TABLE `images`
ROWS IDENTIFIED BY '<Images>';
它正在将 Name 值加载到表中,但未填充 Large 和 Small 字段。在阅读 MySQL 文档时,它看起来可以支持将属性读取为列标题,但它没有指定是否可以在同一行集中同时使用标记名称和属性值作为列名称。
https://dev.mysql.com/doc/refman/5.6/en/load-xml.html
有人可以帮忙吗?是否可以将我拥有的 XML 布局中的图像信息读入单个表中,每条记录一行,填充名称、大小和大小的所有三个字段?
【问题讨论】:
标签: mysql xml-parsing