将C#2.0 System.Data.SqlTypes.SqlXml对象转换为System.Xml.XmlNode
时间:2020-03-06 14:20:20 来源:igfitidea点击:
我似乎总是在用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说它不能用XmlTextReader完成,我应该使用XmlNodeReader吗?
请帮忙!
解决方案
我最终不必使用它,但是我发现了我认为是最佳的答案。基本上,我们加载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的转换。