How to create an XML file from a XmlReader?

不打扰是莪最后的温柔 提交于 2019-12-17 20:19:27

问题


How do you write an XML file from an System.Xml.XmlReader?

I thought this would be a simple question but whenever I search I seem to be ending up with reading the file to a reader or writing node by node.

The XmlReader object conveys xml that was stored in a database and just needs to come out of the database to a file. Is there any easy way to do this?

        SqlCommand dataCmd = new SqlCommand(sqlText, Conn);
        System.Xml.XmlReader dataReader = null;

        dataCmd.CommandTimeout = 60000;

        Conn.Open();
        dataReader = dataCmd.ExecuteXmlReader();
        dataReader.Read();

回答1:


You need to create an XmlWriter and call its WriteNode method.

For example:

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



回答2:


The simplest way would be to pass it into an XmlWriter, using a method such as this:

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


来源:https://stackoverflow.com/questions/3988832/how-to-create-an-xml-file-from-a-xmlreader

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!