我似乎总是在 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 的转换。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top