2

在 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 吗?

请帮忙!

4

1 回答 1

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 的转换。

于 2008-09-18T08:15:20.203 回答