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 に答える