Чтение / запись XML с использованием C # /. NET - PullRequest
3 голосов
/ 14 января 2009

Каковы лучшие функции, практики и / или методы для чтения / записи XML с C # /. NET?

Ответы [ 5 ]

9 голосов
/ 14 января 2009

Если вы работаете с .NET 3.5, LINQ to XML, безусловно, является очень хорошим способом взаимодействия с XML.

MSDN Link

7 голосов
/ 14 января 2009

Есть классы для чтения XML:

  • XmlDocument работает медленно и требует много памяти: он анализирует XML и загружает его в DOM в оперативной памяти, что хорошо, если вы хотите отредактировать его.
  • XmlReader менее требователен к памяти: он сканирует XML спереди назад, и ему не нужно хранить все это в оперативной памяти.

Аналогично, для написания вы можете создать XmlDocument и затем сохранить его или использовать XmlWriter.


После того, как я написал выше, появился новый набор API, которые проще в использовании: например, классы XDocument и XElement.

3 голосов
/ 15 января 2009

Самый простой метод, который я нашел для работы с XML в C #, - это использование инструментов XML-сериализации. Например: http://www.dotnetjohn.com/articles.aspx?articleid=173.

По сути, вы можете определить классы C #, которые соответствуют вашему XML-файлу (фактически, вы можете создать их для себя, если у вас есть файл определения XML), а затем вы просто инициализируете экземпляры этих классов непосредственно из XML-файла. Получив их в качестве экземпляров, вы можете манипулировать ими по своему усмотрению и так же легко переписать их обратно в файлы XML.

2 голосов
/ 15 января 2009

Я обнаружил, что проект MvpXml очень полезен в прошлых сценариях, где учитывается производительность. На страницах их проектов есть множество знаний о передовой практике: http://www.codeplex.com/MVPXML

2 голосов
/ 14 января 2009

В приложениях, критичных к производительности, XmlReader / XmlWriter - хороший выбор (см. здесь ) для простоты, которую Linq предлагает для XML и XmlDocument.

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