Программирование >>  Программирование с использованием ajax 

1 ... 310 311 312 [ 313 ] 314 315 316 ... 396


Атрибуты наследников по имени 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 ООО.



1 ... 310 311 312 [ 313 ] 314 315 316 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика