Ответ 1
XmlWriter
выполняет запись XML-данных на основе потоков. XmlDocument
строит XML-данные в качестве объектной модели в памяти.
Вы используете XmlWriter
, когда вам нужно создавать документы XML, не используя память, пропорциональную размеру документа. Вы используете XmlDocument
, когда вам нужно обрабатывать XML в памяти - когда вы разбираете существующий документ XML в объектной модели или создаете элементы в произвольных местах или обновляете существующий документ или используете XPath для поиска документ. (На самом деле, для последнего случая вы использовали бы XPathDocument
, но в любом случае вы не могли бы использовать XmlWriter
, так как он только для записи.)
Конечно, можно записать XML-данные в поток с помощью XmlDocument
. Но вы на самом деле используете XmlWriter
для этого, потому что это то, что XmlDocument
использует внутренне.