2008-09-18 69 views
2

我似乎總是在C#中將數據轉換爲XML或從XML轉換數據時遇到問題。它總是希望你創建一個完整的XMLDocument對象,即使你認爲你不需要。在這種情況下,我在MS SQL 2005服務器中有一個SQLXML列,我試圖將其插入一個需要XMLNode作爲參數的函數中。你會認爲這很容易,但除了將其轉換爲字符串並創建一個新的XMLNode對象之外,我無法找到正確的方法來完成它。將C#2.0 System.Data.SqlTypes.SqlXml對象轉換爲System.Xml.XmlNode

我可以使用SqlDataReader,sqlComm.ExecuteReader()加載閱讀器,然後使用sqlReader.GetSqlXml(0)來獲取SQLXML對象,但是如何將其轉換爲XmlNode?

相反,我可以使用sqlComm.ExecuteXmlReader()來獲取XmlReader,但是如何從讀取器中提取XmlNode? http://bytes.com/forum/thread177004.html說它不能用XmlTextReader完成,我應該使用XmlNodeReader嗎?

請幫忙!

回答

5

我最終沒有使用它,但我發現我認爲是最好的答案。基本上你加載一個XmlReader,從reader中創建一個XmlDocument,然後從文檔中選擇一個節點列表到一個XmnLodeList中,你可以在ForEach語句中使用它。下面是一些示例代碼:

System.Xml.XmlReader sqlXMLReader = sqlComm.ExecuteXmlReader(); 
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument(); 
xmlDoc.Load(sqlXMLReader); 
System.Xml.XmlNodeList xnlJobs = xmlDoc.SelectNodes("/job"); 

不過令人費解的地獄,但至少沒有XML字符串到XML轉換。

+0

SqlXML可以直接轉換爲字符串stringName = SqlXMLName.Value; – Observer 2016-12-09 16:08:39