2011-11-23 83 views
2

我試圖轉儲XML文件的內容SQL數據庫結構。到SQL表(關係格式)創建一個從XPath的

在過去,我已經使用dataset.readxml但同時處理多對多的關係,有一些問題吧。

所以我採取了一個辦法如下,供所有元素創建XPath表達式的唯一列表,並在XML文件屬性,然後使用這些表達式創建一個SQL數據庫結構,堅持這一數據。

我想創造這個功能作爲一個動態的實現來處理任何XML。

比方說,我有一個XML文件和獨特的XPath是如下

/movie/MovieId[1] 
/movie/MovieName[1] 

/movie/cast[1] 
/movie/cast[1]/name[1] 
/movie/cast[1]/name[2] 
/movie/cast[1]/name[3]/@rolename 

/movie/description[1] 
/movie/directors[1] 
/movie/directors[1]/name[1] 
/movie/directors[1]/name[1] 
/movie/directors[1]/name[2] 
/movie/directors[1]/name[3] 
/movie/releasedate[1] 
/movie/releasedate[1]/@reldatetestatt 
/movie/runtime[1] 

我想作如下創建的表結構:

表名:電影
列:MovieId,電影名稱,說明,已發佈,reldatetestatt,運行時間

表名:投射
列:MovieId,名稱,角色名稱

表名:董事
列:MovieId,名

示例XML,供大家參考:

var xml = @"<movies> 
    <movie> 
    <MovieId>277345</MovieId> 
    <MovieName>The Life and Passion of Jesus Christ</MovieName> 
    <description>The Gospels of the New Testament.</description> 
    <runtime>44</runtime> 
    <releasedate reldatetestatt='testattribute'>3/26/1904 12:00:00 AM</releasedate> 
    <directors> 
     <name>Lucien Nonguet</name> 
     <name>Ferdinand Zecca</name> 
     <name>Ferdinand Zecca 2</name> 
    </directors> 
    <cast> 
     <name rolename='test'>Madame Moreau</name> 
     <name>Monsieur Moreau</name> 
    </cast> 
    </movie> 
</movies>"; 
+0

究竟是什麼你的問題?你想要一個完整的腳本?一些建議? –

+0

psuedocode會有幫助。謝謝 – Gokul

回答

0

你可以嘗試Talend Open Studio(又名雅斯特爾ETL)。它會高興地採取XML和填充數據庫。您可以從UI執行此操作,或將「作業」作爲獨立的Java代碼導出。

+0

謝謝你,KCD。我正在尋找一個基於.net的解決方案。 – Gokul

相關問題