多くの .NET 関数は、XmlWriter を使用して xml を出力/生成します。ファイル/文字列/メモリへの出力は非常に操作です:
XmlWriter xw = XmlWriter.Create(PutYourStreamFileWriterEtcHere);
xw.WriteStartElement("root");
...
場合によっては、結果の Xml を操作する必要があり、それを XmlDocument にロードしたい場合や、他の理由で XmlDocument が必要な場合がありますが、XmlWriter を使用して XML を生成する必要があります。たとえば、XmlWriter のみに出力するサード パーティ ライブラリの関数を呼び出すとします。
できることの 1 つは、xml を文字列に書き込み、それを XmlDocument にロードすることです。
StringWriter S = new StringWriter();
XmlWriter xw = XmlWriter.Create(S);
/* write away */
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(S.ToString());
ただし、これは非効率的です。最初にすべての xml 情報を文字列にシリアル化し、次に文字列を再度解析して DOM を作成します。
XmlWriter を指定して XmlDocument を直接構築するにはどうすればよいですか?