Многие функции .NET используют XmlWriter для вывода / генерации XML. Вывод в файл / строку / память - это очень операция:
XmlWriter xw = XmlWriter.Create(PutYourStreamFileWriterEtcHere);
xw.WriteStartElement("root");
...
Иногда вам нужно манипулировать получающимся Xml и, следовательно, хотеть загрузить его в XmlDocument или может понадобиться XmlDocument по какой-то другой причине, но вы должны сгенерировать XML с помощью XmlWriter. Например, если вы вызываете функцию из сторонней библиотеки, которая выводит данные только на XmlWriter.
Одна из вещей, которую вы можете сделать, - написать 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?