XmlDocument против XmlWriter - PullRequest
       2

XmlDocument против XmlWriter

14 голосов
/ 02 ноября 2009

Я вижу, вы можете создавать XML-файлы, используя XmlDocument или XmlWriter.

Есть ли преимущества использования одного метода над другим?

Ответы [ 4 ]

17 голосов
/ 03 ноября 2009

XmlWriter выполняет потоковую запись данных XML. XmlDocument создает данные XML как объектную модель в памяти.

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

Конечно, можно записать данные XML в поток, используя XmlDocument. Но на самом деле вы используете XmlWriter для этого, потому что это то, что XmlDocument использует внутри.

3 голосов
/ 02 ноября 2009

Если вы поддерживаете .Net Framework 3.5, я бы посоветовал вам работать с XDocument и XElement. Это гораздо более простой и удобный API

3 голосов
/ 02 ноября 2009

Это будет зависеть от вашего сценария. XmlDocument загружает весь документ в память, а XmlWriter использует поток, поэтому он лучше подходит для работы с большими документами XML. С другой стороны, XmlDocument может быть проще в использовании.

0 голосов
/ 02 ноября 2009

XmlDocument хранит данные о дырах в памяти, поэтому он медленно работает при большом размере файла (500 МБ и более), но прост в использовании записи XmlWriter для прямого потока

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...