2013-12-12 77 views
1

我有一個看起來像這樣的XML文件:將具有指定爲屬性的內容的XML導入到MySQL表中?

<?xml version="1.0" encoding="utf-8"?> 
<comments> 
    <row Id="1" PostId="1" Score="3" Text="Maxis uses this in The Sims when clicking on your person to perform actions. ex: call-&gt;friend-&gt;[friends name]" CreationDate="2010-08-09T19:52:30.690" UserId="12" /> 
    <row Id="2" PostId="1" Score="1" Text="Here are some examples: http://en.wikipedia.org/wiki/Pie_menu#Notable_implementations" CreationDate="2010-08-09T19:54:54.007" UserId="31" /> 
    <row Id="3" PostId="9" Score="13" Text="How about making it short and with less steps :)" CreationDate="2010-08-09T19:55:57.670" UserId="35" /> 
    <row Id="4" PostId="3" Score="1" Text="10 sec seems like an awful lot when you are browsing." CreationDate="2010-08-09T19:57:57.057" UserId="32" /> 
    ... 
</comments> 

我環顧四周,發現this slightly related question,但它看起來像這樣的行:

<row> 
    <field name="personal_number">539</field> 
    <field name="firstname">Name</field> 
    <field name="lastname">Surname</field> 
    <field name="email">email.domain.com</field> 
    <field name="start_time">2011-04-02 13:30:00</field> 
    <field name="end_time">2011-04-02 18:15:00</field> 
    <field name="employee_category">1,2,4,5,22,37,38,39,41,43,44</field> 
</row> 

其中每行有一個XML元素爲每個字段 - 而不是一個單一的元素爲每行與內容指定爲屬性,因爲我有。

我該如何將它導入到MySQL中?我可以使用任何技術,但我寧願遠離任何需要Windows的東西。

回答

1

有關LOAD XML INFILE語句支持的XML格式,請參見http://dev.mysql.com/doc/refman/5.6/en/load-xml.html

手冊頁指出:

進口程序會自動檢測每行的格式,並正確地解釋它。標籤根據標籤或屬性名稱和列名稱進行匹配。

其中一種支持的格式與您的相似 - 將列存儲爲<row>元素的屬性。

如果您需要將XML數據轉換爲MySQL LOAD XML支持的格式之一,那麼您可以使用xsltproc

我會假設,如果你的XML數據沒有完美的一致性格式化,它會混淆LOAD XML INFILE。

相關問題