|
Программирование >> Программирование с использованием ajax
Атрибуты наследников по имени customer: ID City Company City Company City Company City Company Для продолжения нажмите Enter: Опять-таки, вывод прокрутится на экране вверх. Этот запрос нашел имена атрибутов элементов customer: <customer ID= . . . City= . . . Company= . . . > <customer ID= . . . City= . . . Company= . . . > <customer ID= . . . City= . . . Company= . . . > Как и в случае с методом Descendants (), можно передать определенное имя Attributes О для его поиска. Вдобавок вы можете не ограничиваться отображением только имени. Можно также отобразить и сам атрибут. Приведем пример запроса, который отображает атрибуты элемента customer по имени Company: Console.WriteLine ( Атрибуты customer по имени Company : ) ; var queryResult = from с in customers.Descendants ( customer ) .Attributes ( Coiany ) select c; foreach (var item in queryResult) { Console.WriteLine(item); Откомпилируйте и выполните его. Вы увидите атрибуты, содержащие наименования компаний элементов customer: Company= Toms Spezialitaten Company= Tortuga Restaurante Company= Tradigao Hipermercados Company= Trails Head Gourmet Provisioners Company= Vaffeljernet Company= Victuailles en stock Company= Vins et alcools Chevalier Company= Die Wandernde Kuh Company= Wartian Herkku Company= Wellington Importadora Company= White Clover Markets Company= Wilman Kala Company= Wolski Zajazd Для продолжения нажмите Enter: A вот другой пример, на этот раз, с элементами order и атрибутом orderYear: Console.WriteLine ( Атрибуты order no имени orderYear : ) ; var queryResult = from с in customers.Descendants( order ).Attributes( orderYear ) select c; foreach (var item in queryResult) Console.WriteLine(item); Откомпилируйте и выполните его. Вы увидите следующий вывод: orderYear= 1998 orderYear= 1998 orderYear= 1998 orderYear= 1996 orderYear= 1997 orderYear= 1997 orderYear= 1998 orderYear= 1998 orderYear= 1998 orderYear= 1998 Для продолжения нажмите Enter: Можно также получить специфические значения атрибута (здесь - year) через свойство Value: Console.WriteLine ( Значения атрибутов order по имени orderYear : ) ; var queryResult = from с in customers.Descendants( order ).Attributes( orderYear ) select c.Value; foreach (var item in queryResult) { Console.WriteLine(item); Откомпилируйте и выполните его. Вы увидите следующий вывод: 1996 1997 1997 1998 1998 1998 1998 Для продолжения нажмите Enter: Теперь можно задавать специфические вопросы: например, в каком самом раннем году был размещен первый заказ? Ответить на это можно с помощью того же запроса, но применить агрегатную операцию Min () к результату, вместо обычного цикла foreach: var queryResult = from с in customers.Descendants( order ).Attributes( orderYear ) select c.Value; Console.WriteLine ( Самый ранний год, в котором были размещены заказы: {0} , queryResults .Min ()) ; Откомпилируйте и выполните это. Вы увидите ответ - 1996: Самый ранний год, в котором были размещены заказы: 1996 Для продолжения нажмите Enter: Можете потренироваться в формулировании и более специфичных вопросов на основе примеров настоящей главы. Резюме На этом мы завершаем исследование LINQ to XML. Как вы убедились, LINQ to XML интегрирует концепцию LINQ в легкий для применения альтернативный XML API, позволяющий быстро встраивать XML в программы, использующие LINQ. Это делает запросы XML-документов простыми и естественными для программистов, уже знакомых с LINQ в его других формах. В этой главе вы изучили, как строятся XML-документы с помощью функциональных конструкторов, а затем - как загружать и сохранять документы с помощью LINQ to XML. Вы освоили применение LINQ to XML для работы с неполными документами XML (фрагментами), а также узнали, как легко сгенерировать XML-документ на основе запросов LINQ to SQL или LINQ to Objects. И, наконец, вы узнали, как опрашивать существующие XML-документы посредством LINQ to XML, и применять расширенные средства LINQ, такие как агрегатные операции LINQ с LINQ to XML. Упражнения 1. Создайте следующий XML-документ, используя конструкторы LINQ to XML: <employees> <employee ID= 1001 FirstName= Fred LastName= Lancelot > <Skills> <Language>C#</Language> <Math>Calculus</Math> </Skills> </employee> <employee ID= 2002 FirstName= Jerry LastName= Garcia > <Skills> <Language>French</Language> <Math>Business</Math> </Skills> </employee> </employees> 2. Напишите запрос к файлу NorthwindCustomerOrders .xml, который вы создали, чтобы найти самых старых заказчиков (с заказами, размещенными в первый год операций, хранимых в Northwind - в 1996). 3. Напишите запрос к файлу NorthwindCustomerOrders. xml для нахождения заказчиков, которые размещали индивидуальные заказы на сумму свыше $10 ООО. 4. Напишите запрос к файлу NorthwindCustomerOrders. xml для нахождения времени существования самых активных заказчиков, например, компаний, общая сумма заказов которых превышает $100 ООО.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |