如何从XmlReader创建XML文件?

如何从System.Xml.XmlReader编写XML文件?

我认为这将是一个简单的问题,但每当我搜索时,我似乎最终都会将文件读取到读取器或逐个节点地编写。

XmlReader对象传达存储在数据库中的xml,只需要从数据库中传出一个文件即可。 有没有简单的方法来做到这一点?

SqlCommand dataCmd = new SqlCommand(sqlText, Conn); System.Xml.XmlReader dataReader = null; dataCmd.CommandTimeout = 60000; Conn.Open(); dataReader = dataCmd.ExecuteXmlReader(); dataReader.Read(); 

您需要创建一个XmlWriter并调用其WriteNode方法 。

例如:

 using (conn) using (SqlCommand dataCmd = new SqlCommand(sqlText, Conn)) { dataCmd.CommandTimeout = 60000; Conn.Open(); using (XmlReader dataReader = dataCmd.ExecuteXmlReader()) using (XmlWriter writer = XmlWriter.Create(File.OpenWrite(...)) { writer.WriteNode(dataReader, true); } } 

最简单的方法是将它传递给XmlWriter,使用如下方法:

 public void WriteOutXml(XmlReader xmlReader, string fileName) { var writer = XmlWriter.Create(fileName); writer.WriteNode(xmlReader, true); }