我是C#的新手,所以我很抱歉如果這是一個簡單的任務。我想要打開一個XML文件,其根節點是一個表名,而根節點的子節點是字段名和值。然後,我想將這些字段映射到SQL Server數據庫中的根節點的表中,並根據需要進行更新或插入。有沒有人知道是否有更好的方法來做這個比循環遍歷節點樹和構建SQL字符串?似乎應該有一種方法來綁定字段,就好像XML文檔是一種形式一樣,只有它纔會存在於內存中。再次,對不起,如果這個問題有一個明顯的答案。預先感謝您的幫助。將XML節點映射到數據表字段
0
A
回答
0
我使用OPENXML方法來解決這樣的任務。還有例如從BOL如何從XML選擇數據:
DECLARE @idoc int
DECLARE @doc varchar(1000)
SET @doc ='
<ROOT>
<Customer CustomerID="VINET" ContactName="Paul Henriot">
<Order OrderID="10248" CustomerID="VINET" EmployeeID="5"
OrderDate="1996-07-04T00:00:00">
<OrderDetail ProductID="11" Quantity="12"/>
<OrderDetail ProductID="42" Quantity="10"/>
</Order>
</Customer>
<Customer CustomerID="LILAS" ContactName="Carlos Gonzlez">
<Order OrderID="10283" CustomerID="LILAS" EmployeeID="3"
OrderDate="1996-08-16T00:00:00">
<OrderDetail ProductID="72" Quantity="3"/>
</Order>
</Customer>
</ROOT>'
--Create an internal representation of the XML document.
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
-- SELECT stmt using OPENXML rowset provider
SELECT *
FROM OPENXML (@idoc, '/ROOT/Customer/Order/OrderDetail',2)
WITH (OrderID int '../@OrderID',
CustomerID varchar(10) '../@CustomerID',
OrderDate datetime '../@OrderDate',
ProdID int '@ProductID',
Qty int '@Quantity')
所以,你可以使用INSERT ... SELECT FROM OPENXML語句這個數據插入到數據庫。
0
最簡單的方法可能是爲您的xml類型創建一個簡單的實體類,並使用XML序列化屬性將您的xml元素映射到您的類及其屬性。然後,您可以使用標準的XmlSerializer將xml反序列化爲對象,或者將對象序列化爲xml。一旦你有了一個對象,應該很容易使用OR映射器(LINQ to SQL,Entity Framework,NHibernate)或類似iBatis的東西來執行你的實體類的更新/插入/刪除。
相關問題
- 1. 將PostgreSQL XML類型映射到實體bean的字節[]字段
- 2. XML解析:遍歷子節點並將字段值保存到哈希映射
- 3. 將多字節字符映射到它們的Unicode點表示
- 4. Drupal 7的節點 - >字段映射在數據庫
- 5. RestKit將XML映射到核心數據
- 6. XML映射到數據庫
- 7. 將OpenCMS結構化內容XML字段映射到SOLR字段
- 8. 將表單字段映射到POST數據
- 9. Arraylist映射到鏈表列表節點
- 10. @ModelAttribute:將字段映射到參數
- 11. PostgreSQL映射到XML屬性的字段
- 12. MySQL將csv字段映射到數據表中的特定字段
- 13. 將XInput2設備映射到sysfs節點
- 14. 如何將xml子節點映射到jqgrid
- 15. 將ObjectId字段映射到字符串
- 16. ROXML XML映射文本節點值
- 17. 將數據映射到字符串
- 18. 將文字地址映射到節
- 19. BizTalk - 如何將這兩個節點映射到重複節點?
- 20. 將xml屏幕映射到表格
- 21. 將字段映射結果插入到mysql數據庫中
- 22. 如何將GUI標籤映射到數據庫字段?
- 23. 將兩個字段映射到一個數據庫列
- 24. 將數據集映射到UItableView裏面的文本字段
- 25. Zend的表單字段映射到數據庫列
- 26. 如何將嵌套的XML字段映射到CSV?
- 27. 動態地將xml字段映射到一個靜態對象
- 28. MAPtruct - 將字段值映射到屬性
- 29. 將ORACLE TIMESTAMP(9)字段映射到java.util.Date
- 30. 將Infopath字段映射到Sharepoint列