Поделиться через


Функциональное преобразование XML (LINQ to XML)

В этой статье рассматривается чистый функциональный подход к изменению XML-документов и контрастирует с процедурным подходом.

Изменение XML-документа

Одной из наиболее распространенных задач программиста на XML состоит в том, чтобы преобразовать XML из одной формы в другую. Форма XML-документа представляет собой структуру документа, которая включает:

  • иерархию, выраженную в документе;
  • имена элементов и атрибутов;
  • типы данных элементов и атрибутов.

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

Технологии функционального преобразования XML

Майкрософт предлагает две технологии функционального преобразования для использования в XML-документах: XSLT и LINQ to XML. XSLT поддерживается в управляемом пространстве имен System.Xml.Xsl, а также в собственной COM реализации MSXML. Не смотря на то что XSLT представляет собой надежную технологию работы с XML-документами, для ее использования требуется опыт в специализированных областях, а именно в области языка XSLT и поддерживающих его API-интерфейсов.

В LINQ to XML предусмотрены инструменты, необходимые для чисто функциональных преобразований, кодируемых выразительно и эффективно внутри кода на языках C# и Visual Basic. Например, многие примеры в документации LINQ to XML используют чисто функциональный подход. Кроме того, в руководстве по обработке содержимого в руководстве по документу WordprocessingML мы используем LINQ to XML в функциональном подходе для управления информацией в документе Microsoft Word.

Более полное сравнение LINQ to XML с другими технологиями Microsoft XML см. в статье LINQ to XML и другие технологии XML.

XSLT - это рекомендованный инструмент для преобразований, ориентированных на работу с документами, когда исходный документ имеет неправильную структуру. Несмотря на это, LINQ to XML также может осуществлять преобразования, ориентированные на работу с документами. Дополнительные сведения см. в статье "Использование заметок для преобразования деревьев LINQ to XML в стиле XSLT".

См. также