我有一系列需要處理的XML文檔,它們將關鍵元素和屬性存儲在幾個關係表(「一」和相關的「多」表)中。XML - > XSLT - > DB
我已經確定了識別相關節點所需的正確Xpath邏輯。
一種方法是在轉換完成時處理DOM節點集,並根據需要插入記錄。雖然這會起作用,但它看起來很不雅觀。
另一個可選項是生成一個CSV文件,然後批量插入它。
在任何一種情況下,都可以靈活地將XPath映射到設置文件中的表/列組合,而不是對其進行硬編碼。
有沒有特別優雅的方法來處理這種情況,我不考慮?
我有一系列需要處理的XML文檔,它們將關鍵元素和屬性存儲在幾個關係表(「一」和相關的「多」表)中。XML - > XSLT - > DB
我已經確定了識別相關節點所需的正確Xpath邏輯。
一種方法是在轉換完成時處理DOM節點集,並根據需要插入記錄。雖然這會起作用,但它看起來很不雅觀。
另一個可選項是生成一個CSV文件,然後批量插入它。
在任何一種情況下,都可以靈活地將XPath映射到設置文件中的表/列組合,而不是對其進行硬編碼。
有沒有特別優雅的方法來處理這種情況,我不考慮?
由於我有同樣的問題,我會告訴你我是如何處理的。我基於我的XML文件創建了DOM。爲了確保在我的sql語句中沒有錯誤,我沒有「即時」插入數據,但我創建了一個文件,它是INSERT
語句。爲了優化插入,我創建一個INSERT
聲明每50 VALUES(...)
。在檢查完成後,我將行插入數據庫中。
我希望這個小小的演練能夠幫助你。
很多方法可以做到這一點。你的數據庫是SQL服務器數據庫嗎?如果是這樣,你可能想看看OpenXML,它允許你直接查詢xml並將數據插入到表中。基本上你的.net應用程序沒有智能,它只會讀取XML內容並將它們作爲參數傳遞給sql語句。
對不起,但我不明白如果你想解析一個XML並在db中插入記錄,如何適應這個問題XSLT。 –
本質上,要將詳細的XML文檔轉換爲1)另一種格式,如CSV或2)可以更容易地映射到數據庫表。 – craig
正確但請記住,這將帶來額外的一步,在我看來,這是可以避免的。 –