有没有办法使用MySQL的LOAD XML LOCAL INFILE
问题描述:
这种类型的XML格式?有没有办法使用MySQL的LOAD XML LOCAL INFILE
<details>
<detail>
<name>Woofer Size</name>
<value>12"</value>
</detail>
<detail>
<name>Woofer Material</name>
<value>KEVLAR-reinforced pulp</value>
</detail>
<detail>
<name>Magnet Size</name>
<value>74 oz.</value>
</detail>
<detail>
<name>Continuous Power Handling</name>
<value>250W</value>
</detail>
<detail>
<name>Peak Power handling</name>
<value>750W</value>
</detail>
<detail>
<name>Impedance</name>
<value>4 ohms</value>
</detail>
<detail>
<name>Number of Voice Coils</name>
<value>1</value>
</detail>
<detail>
<name>Frame Material</name>
<value>Steel</value>
</detail>
<detail>
<name>Surround Material</name>
<value>Santoprene rubber</value>
</detail>
<detail>
我不知道如何解决这个问题获取数据到MySQL数据库。我的问题是:是否有可能直接加载到MySQL?
UPDATE
的解决方案是创建一个表。
CREATE TABLE data(
name VARCHAR(250),
value VARCHAR(250));
然后用这个语句:
LOAD XML LOCAL INFILE
'path/to/the/file.xml'
INTO TABLE data ROWS IDENTIFIED BY '<detail>';
答
是的,假设你有一个良好的XML文档,你的例子是没有的。 见LOAD XML Syntax
本声明支持三种不同的XML格式:
- 列名属性和列值的属性值:
<row column1="value1" column2="value2" .../>
- 列名标签和 列值ES这些标签的内容:
<row>
<column1>value1</column1>
<column2>value2</column2>
</row>
- 列名称的标签名称的属性,和值是这些标签的 内容:
<row>
<field name='column1'>value1</field>
<field name='column2'>value2</field>
</row>
这是第二种格式,应该在你的情况下工作。
如果我没有看错,我仍然面临一个问题,因为我的XML文档的标签名称不是唯一的,而是多余的。 –
它们是唯一的:'name'与'value'不同。这些是你的列名。 – RedFilter