Работа с XML при помощи LINQ to XML

API-интерфейс LINQ to XML предлагает альтернативный способ построения, манипулирования и опроса XML-документов, который использует намного более функциональный подход, чем модель DOM из System.Xml. Вместо построения XML-документа за счет индивидуальной сборки элементов и обновления дерева XML через набор вызовов функций, код пишется сверху вниз.

Пример создания аналогичного предыдущему XML-документа

XElement doc =

new XElement("recipe", new XAttribute("name", "хлеб"),

new XElement("title", "Простой хлеб"),

new XElement("ingredient", new XText("Мука"),

new XAttribute("amount", "3"), new XAttribute("unit", "стакан")),

new XElement("ingredient", new XText("Дрожжи"),

new XAttribute("amount", "0.25"), new XAttribute("unit", "грамм")),

new XComment("This is comment")

);

Классы X* и их коллекции также реализуют методы, позволяющие опрашивать загруженное дерево XML в поисках элементов, атрибутов и их значений, а также модифицировать их. Примеры методов:

Ancestor () Возвращает отфильтрованную коллекцию элементов-предков данного элемента
Attributes () Возвращает отфильтрованную коллекцию атрибутов элемента
Descendants<T> Возвращает отфильтрованную коллекцию элементов-потомков данного элемента
Elements<T> Возвращает коллекцию дочерних элементов данного элемента
Nodes<T> Возвращает коллекцию дочерних узлов данного элемента
Remove () Удаляет заданный элемент из родительского элемента

Пример:

doc.Elements("ingredient").Remove();

Выводы:

· XML – текстовый формат для представления структурированных данных в виде дерева.

· Для работы с XML в.NET обычно используются классы пространства имен System.Xml или механизм LINQ to XML.

· System.Xml предоставляет классы вида XmlDocument, XmlElement, XmlAttribute, XmlComment и др. Формирование структуры осуществляется методами вида CreateElement/ CreateAttribute/ CreateComment, AddChild()/RemoveChild(), SetAttribute() и др. Чтение — методами и свойствами вида GetElementsByTagName(), GetElementById(), ChildNodes, NextSibling/PreviousSibling, Value и др.

· System.Xml.Linq позволяет создавать XML-документы в более наглядной манере, задавая структуру при помощи конструкторов объектов с переменным числом параметров. Используются такие классы как XElement, XAttribute, XComment и др. Для чтения и изменения узлов дерева используются вызовы вида Elements(“имя элемента”), Attributes(“имя атрибута”) и др.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: