将C#2.0 System.Data.SqlTypes.SqlXml对象转换为System.Xml.XmlNode

时间:2008-09-18 07:51:51

标签: c# sqldatareader sqlxml xmlnode

我似乎总是遇到在C#中与XML进行数据转换的问题。它总是希望您创建一个完整的XMLDocument对象,即使您认为不应该这样做。在这种情况下,我在MS SQL 2005服务器中有一个SQLXML列,我试图将其拉出并推入需要XMLNode作为参数的函数。您会认为这很容易,但除了将其转换为字符串并创建新的XMLNode对象之外,我无法找到正确的方法。

我可以使用SqlDataReader,sqlComm.ExecuteReader()来加载阅读器,使用sqlReader.GetSqlXml(0)来获取SQLXML对象,但是如何将其转换为XmlNode?

相反我可以使用sqlComm.ExecuteXmlReader()来获取XmlReader,但是如何从阅读器中提取XmlNode? http://bytes.com/forum/thread177004.html表示如果我使用XmlNodeReader,则无法使用XmlTextReader完成?

请帮忙!

1 个答案:

答案 0 :(得分:5)

我最终不必使用它,但我发现我认为最好的答案。基本上你加载一个XmlReader,从阅读器创建一个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转换。

相关问题