2011-10-05 48 views
0

這種類型的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>'; 

回答

2

是的,假設你有一個良好的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> 

這是第二種格式,應該在你的情況下工作。

+0

如果我沒有看錯,我仍然面臨一個問題,因爲我的XML文檔的標籤名稱不是唯一的,而是多餘的。 –

+0

它們是唯一的:'name'與'value'不同。這些是你的列名。 – RedFilter

相關問題