如何使用Load data或load XML将以下语法加载的XML文件导入到mysql表中。 XML格式:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<merchants xmlns="urn:com:kelkoo:merchant:bean:v1">
<merchant id="11994513">
<name>tool-fitness.es</name>
<url>http://www.tool-fitness.es</url>
<profile>
<summary>tienda especializada en máquinas de fitness y material de musculación a precios de descuento.</summary>
<logo>
<logoURL>http://r6.kelkoo.com//data/merchantlogos/11994513/tool.JPG</logoURL>
</logo>
</profile>
<email>contacto@tool-fitness.es</email>
</merchant>
<merchant id="13531013">
<name>Electrodomesticosweb</name>
<url>http://www.electrodomesticosweb.es/</url>
<profile>
<summary>tienda venta online de electrodomesticos para el hogar</summary>
<logo> <logoURL>http://r6.kelkoo.com//data/merchantlogos/13531013/logo.jpg</logoURL>
</logo>
</profile>
<email>info@electrodomesticosweb.es</email>
</merchant>
</merchants>
首先我尝试了这个,但它只输入了一条记录
LOAD DATA LOCAL INFILE "/home/wwwindia/public_html/europe/spain/MerchantFeed_es.xml"
INTO TABLE es_merchant
CHARACTER SET binary
LINES STARTING BY '<merchants xmlns="urn:com:kelkoo:merchant:bean:v1">' TERMINATED BY '</merchants>'
(@merchants)
SET
merchant_id = ExtractValue(@merchants, '/merchant/@id'),
url = ExtractValue(@merchants, '/merchant/url'),
name = ExtractValue(@merchants, '/merchant/name'),
summary = ExtractValue(@merchants, '/merchant/profile/summary'),
logoURL = ExtractValue(@merchants, '/merchant/profile/logo/logoURL'),
email = ExtractValue(@merchants, '/merchant/email')
;
接下来,当我尝试使用这些代码时,它失败了:
LOAD DATA LOCAL INFILE "/home/wwwindia/public_html/europe/spain/MerchantFeed_es.xml"
INTO TABLE es_merchant
CHARACTER SET binary
LINES STARTING BY '<merchant id="13531013">' TERMINATED BY '</merchant>'
(@merchant)
SET
merchant_id = ExtractValue(@merchant, '@id'),
url = ExtractValue(@merchant, 'url'),
name = ExtractValue(@merchant, 'name'),
summary = ExtractValue(@merchant, 'profile/summary'),
logoURL = ExtractValue(@merchant, 'profile/logo/logoURL'),
email = ExtractValue(@merchant, 'email')
;
任何帮助?
答案 0 :(得分:0)
您可以更改XML中的顺序吗?在下面的示例中,您可以看到原因。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<merchants xmlns="urn:com:kelkoo:merchant:bean:v1">
<merchant id="11994513">
<name>tool-fitness.es</name>
<url>http://www.tool-fitness.es</url>
<email>contacto@tool-fitness.es</email>
<profile>
<summary>tienda especializada en máquinas de fitness y material de musculación a precios de descuento.</summary>
<logo>
<logoURL>http://r6.kelkoo.com//data/merchantlogos/11994513/tool.JPG</logoURL>
</logo>
</profile>
</merchant>
<merchant id="13531013">
<name>Electrodomesticosweb</name>
<url>http://www.electrodomesticosweb.es/</url>
<email>info@electrodomesticosweb.es</email>
<profile>
<summary>tienda venta online de electrodomesticos para el hogar</summary>
<logo>
<logoURL>http://r6.kelkoo.com//data/merchantlogos/13531013/logo.jpg</logoURL>
</logo>
</profile>
</merchant>
</merchants>
/* CODE FOR DEMONSTRATION PURPOSES */
mysql> SELECT VERSION();
+-----------------+
| VERSION() |
+-----------------+
| 5.5.22-0ubuntu1 |
+-----------------+
1 row in set (0.00 sec)
DROP TABLE IF EXISTS `es_merchant`;
Query OK, 0 rows affected (0.00 sec)
CREATE TABLE `es_merchant` (
`id` INT NOT NULL,
`url` VARCHAR(200) NULL,
`name` VARCHAR(60) NULL,
`summary` VARCHAR(500) NULL,
`logoURL` VARCHAR(100) NULL,
`email` VARCHAR(60) NULL
);
Query OK, 0 rows affected (0.00 sec)
LOAD XML INFILE '/path/to/file/MerchantFeed_es.xml'
INTO TABLE `es_merchant`
CHARACTER SET 'utf8'
ROWS IDENTIFIED BY '<profile>';
Query OK, 2 rows affected (0.00 sec)
Records: 2 Deleted: 0 Skipped: 0 Warnings: 0
SELECT
`id`,
`url`,
`name`,
`summary`,
`logoURL`,
`email`
FROM
`es_merchant`;
+----------+-------------------------------------+----------------------+-------------------------------------------------------------------------------------------------+------------------------------------------------------------+------------------------------+
| id | url | name | summary | logoURL | email |
+----------+-------------------------------------+----------------------+-------------------------------------------------------------------------------------------------+------------------------------------------------------------+------------------------------+
| 11994513 | http://www.tool-fitness.es | tool-fitness.es | tienda especializada en máquinas de fitness y material de musculación a precios de descuento. | http://r6.kelkoo.com//data/merchantlogos/11994513/tool.JPG | contacto@tool-fitness.es |
| 13531013 | http://www.electrodomesticosweb.es/ | Electrodomesticosweb | tienda venta online de electrodomesticos para el hogar | http://r6.kelkoo.com//data/merchantlogos/13531013/logo.jpg | info@electrodomesticosweb.es |
+----------+-------------------------------------+----------------------+-------------------------------------------------------------------------------------------------+------------------------------------------------------------+------------------------------+
2 rows in set (0.00 sec)
/* CODE FOR DEMONSTRATION PURPOSES */