13

如何从 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();
4

2 回答 2

26

您需要创建一个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);
    }
}
于 2010-10-21T14:59:54.877 回答
9

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

public void WriteOutXml(XmlReader xmlReader, string fileName)
{
    var writer = XmlWriter.Create(fileName);
    writer.WriteNode(xmlReader, true);
}
于 2010-10-21T15:01:53.530 回答