|
Программирование >> Программирование с использованием ajax
LINQ to XML В предыдущих двух главах мы уже представили LINQ и показали, как LINQ работает с объектами и базами данных. Эта глава посвящена LINQ to XML - версии LINQ, позволяющей использовать LINQ для запросов и манипуляций XML. Язык XML был описан в главе 25, так что мы не станем здесь повторяться. Вы уже должны быть знакомы с документами XML, их элементами, атрибутами и т.п,; если вы еще не прочли введение в XML в главе 25, сделайте это сейчас. LINQ to XML не предназначен стать заменой стандартным API XML, таким как XML DOM (Document Object Model - объектная модель документов), XPath, XQuery, XSLT и т.д. Если вы знакомы с этими API или нуждаетесь в их применении или изучении, продолжайте этим заниматься. LINQ to XML дополняет стандартные классы XML и облегчает работу с XML. LINQ to XML предлагает дополнительные возможности для создания и опроса данных XML, в результате чего упрощается и ускоряется разработка для многих стандартных ситуаций, особенно если уже используется LINQ to Objects или LINQ to SQL в других частях программ. В частности, в этой главе будут рассматриваться следующие темы. □ Как создавать документы XML средствами функциональных конструирующих методов LINQ to XML. □ Как форматировать, загружать и сохранять документы XML с LINQ to XML. □ Как использовать LINQ to XML для работы с неполными документами XML (фрагментами). □ Как генерировать документ XML из запросов LINQ to SQL или LINQ to Object. □ Как опрашивать документ XML средствами LINQ to XML, используя стандартный синтаксис запросов LINQ. □ Как использовать агрегатные операции LINQ с LINQ to XML. Функциональные конструкторы LINQ to XML Как было показано в предыдущих главах, одним из преимуществ С# 3.0 является легкость конструирования объектов, с помощью таких средств, как инициализаторы объектов и анонимные типы. LINQ to SQL продолжает эту тему, предлагая новый, облегченный способ создания документов XML, называемый функциональным конструированием, при котором вызовы конструкторов могут быть вложены таким образом, что естественно отображают структуру документа XML. В следующем практическом занятии функциональные конструкторы используются для создания простого документа XML, содержащего заказчиков и заказы. практическое заняти* КонСТруктОры LINQ tO XML Для создания примера выполните следующие шаги в Visual С# 2008. 1. Создайте новое консольное приложение по имени BegVCSharp 29 l LinqToXml Constructors в каталоге C:\BegVCSharp\Chapter29. 2. Откройте главный файл Program, cs. 3. Добавьте ссылку на пространство имен System.Xml. Linq в начало Program, cs, как показано ниже: using System; using System.Collections.Generic; using System.Linq; using System.Xinl.Linq; using System.Text; 4. Добавьте следующий код в метод Main () в Program, cs: static void Main(string[] args) { XDocument xdoc = new XDocument ( new XElement( customers , new XElement( customer , new XAttribute( ID , A ), new XAttribute ( City , New York ), new XAttribute( Region , North America ), new XElement( order , new XAttribute( Item , Widget ), new XAttribute( Price , 100) new XElement( order , new XAttribute( Item , Tire ), new XAttribute( Price , 200) new XElement( customer , new XAttribute ( ID , B ), new XAttribute( City , Mumbai ), new XAttribute( Region , Asia ), new XElement( order , new XAttribute( Item , Oven ), new XAttribute( Price , 501) Console.WriteLine(xdoc) ; Console.Write( Программа завершена, нажмите Enter для продолжения: ); Console.ReadLine(); 5. Откомпилируйте и выполните программу (можно просто нажать <F5> для запуска отладки). После этого вы увидите следующий вывод: <customers> <customer ID= A City= New York Region= North America > <order Item= Widget Price= 100 /> <order Item= Tire Price= 200 /> </customer> <customer ID= B City= Mumbai Region= Asia > <order Item= Oven Price= 501 /> </customer> </customers> Программа завершена, нажмите Enter для продолжения: Документ XML, показанный в выводе, содержит очень упрощенную версию данных о заказчиках/заказах, которые вы видели в предыдущих примерах. Обратите внимание, что корневой элемент документа XML - <customers> - содержит в себе вложенные элементы <customer>. Они, в свою очередь, содержат ряд элементов <order>. Элементы <customer> имеют два атрибута - City и Region, а элементы <order> - два атрибута Item и Price. Нажмите <Enter> для выхода из программы и очистки экрана консоли. Если использовалась комбинация <Ctrl-i-F5> (запуск без отладки), может понадобиться нажать <Enter> два раза. ОЛисание полученных результатов Первый шаг состоит в добавлении ссылки на пространство имен System.Xml. Linq. Все последующие примеры настоящей главы требуют добавления в программу такой строки: using System.Xml.Linq; В то время как пространство System. Linq включается по умолчанию при создании проекта, пространство System. Xml. Linq потребуется включать вручную; эту строку необходимо ввести явно. Затем идут вызовы конструкторов LINQ to XML - XDocument () , XElement () и XAttribute 0 , - которые вложены внутрь друг друга, как показано ниже: XDocument xdoc = new XDocument( new XElement( customers , new XElement( customer , new XAttribute( ID , A ), Обратите внимание, что код уже выглядит как XML - документ содержит элементы, и каждый элемент содержит атрибуты и прочие элементы. Рассмотрим каждый из конструкторов по очереди. □ XDOcument (). Это объект самого верхнего уровня в иерархии конструкторов LINQ to XML, представляющий полный документ XML. Он появляется в коде следующим образом: static void Main(string[] args) { XDocijment xdoc = new XDocijment(
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |