C# 如何从XmlReader创建XML文件?

C# 如何从XmlReader创建XML文件?,c#,xml,xmlreader,xmlwriter,C#,Xml,Xmlreader,Xmlwriter,如何从System.XML.XmlReader编写XML文件 我原以为这是一个简单的问题,但每当我搜索时,我似乎都会把文件读给一个读卡器,或者一个节点一个节点地写 XmlReader对象传递存储在数据库中的xml,只需要从数据库中输出到文件中。有什么简单的方法可以做到这一点吗 SqlCommand dataCmd = new SqlCommand(sqlText, Conn); System.Xml.XmlReader dataReader = null;

如何从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
,并调用它的

例如:

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);
}

我有一个使用了更高版本,但是这次清理使代码变得更好。谢谢你,感谢谷歌。如果不使用var settings=newxmlwritersettings{CloseOutput=true},则不会关闭文件;Create(File.OpenWrite(…),设置)