如何从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();
答案 0 :(得分:24)
您需要创建XmlWriter
并调用其WriteNode
method。
例如:
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);
}
}
答案 1 :(得分:8)
最简单的方法是使用如下方法将其传递给XmlWriter:
public void WriteOutXml(XmlReader xmlReader, string fileName)
{
var writer = XmlWriter.Create(fileName);
writer.WriteNode(xmlReader, true);
}