|
Программирование >> Программирование с использованием ajax
static void Main(string [ ] args) { XElement xcust = 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) 5. После добавления кода конструктора элемента XML на предыдущем шаге добавьте следующий код для сохранения, загрузки и отображения элемента XML: string xmlFileName = @ с:\BegVCSharp\Chapter29\Xml\example3.xml ; xcust.Save(xmlFileName); XElement xcust2 = XElement.Load(xmlFileName); Console.WriteLine( Содержимое xcust: ); Console.WriteLine(xcust); Console.Write( Программа завершена, нажмите Enter для продолжения: ); Console.ReadLine(); 6. Откомпилируйте и выполните программу (можно просто нажать <F5> для запуска отладки). После этого вы должны увидеть следующий вывод к окне консоли: Contents of XElement xcust2: <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 для продолжения: Нажмите <Enter> для выхода из программы и очистки экрана консоли. Если использовалась комбинация <Ctrl+F5> (запуск без отладки), может понадобиться нажать <Enter> два раза. Описание полученных результатов и XElement, и XDocument наследуются от класса LINQ to XML по имени XMLContainer, который реализует узел XML, содержащий другие узлы XML. Оба класса также реализуют Load О и Save (), так что большинство операций, которые могут быть выполнены в LINQ to XML над XDocument, также могут быть выполнены на экземпляре XElement и его дочерних объектах. Вы просто создаете экземпляр XElement, который имеет ту же структуру, что и XDocument, использованный в предыдущем примере, но пропускает включающий XDocument. Все операции этой конкретной программы работают с фрагментом XElement аналогично. XElement также поддерживает методы Load () и Parse () для загрузки XML из файлов и строк, соответственно. Генерация XML из LINQ to SQL Часто XML применяется для передачи данных между клиентской и серверной машинами, либо между слоями многоуровневого приложения. Довольно часто приходится запрашивать одни и те же данные из базы данных, а затем производить документ XML или его фрагмент из этих данных для передачи его на другой уровень. В следующем практическом занятии вы создадите запрос для нахождения некоторых данных в базе Northwind, воспользуетесь LINQ to SQL для запроса этих данных, а затем примените LINQ to XML для преобразования их в XML. Пример требует наличия базы данных примеров Northwind, описанной в начале главы 27. Генерация ХМ L из LINQ to SQL Для создания примера выполните следующие шаги в Visual С# 2008. 1. Создайте новое консольное приложение по имени BegVCSharp 29 4 XMLFrom LINQtoSQL в каталоге С: \BegVCSharp\Chapter29. 2. Как описано в шагах 3-12 практического занятия Первый запрос LINQ to SQL в начале главы 27, добавьте к проекту класс LINQ to SQL по имени Northwind. dbml, а затем добавьте соединение с базой данных Northwind. 3. Перетащите таблицы Customers, Orders и Order Details на поверхность проектирования 0/R Designer Northwind.dbml. Внешний вид O/R Designer показан на рис. 29.2, где присутствуют три таблицы с их отношениями. 4. Откомпилируйте программу, чтобы классы и свойства, определенные в Northwind.dbml, были доступны через средство IntelliSense при редактировании кода в последующих шагах. 5. Откройте главный файл Program.cs. 6. Добавьте ссылку на пространство имен System.Xml.Linq в начало Program.cs, как показано ниже: using System; using System.Collections.Generic; using System.Linq; using Sys tem. Xml. Linq; using System.Text; , GPH,\NOMCf . JOB I t.-npl yt T,aWwn Prop ti .t CortKtTrt T Cr, CdHD -С Sh.f... If OiwIlPoc* Pwc. 29.2. Таблицы Customers, Orders и Order Details и отноилениямежду ними 7. Добавьте следующий код в метод Main () в Program, cs: static void Main(string [ ] args) { NorthwindDataContext northwindDataContext = new NorthwindDataContext (); XElement northwindCustomerOrders = new XElement( customers , from с in northwindDataContext.Customers select new XElement( customer , new XAttribute( ID , с.CustomerlD), new XAttribute( City , c.City), new XAttribute( Company , с.CompanyName), from о in c.Orders select new XElement( order , new XAttribute( orderlD , o.OrderlD), new XAttribute( orderDay , о.OrderDate.Value.Day), new XAttribute( orderMonth , O.OrderDate.Value.Month), new XAttribute( orderYear , о.OrderDate.Value.Year), new XAttribute( orderTotal , o.Order Details.Sum(od = > od.Quantity * od.UnitPrice)) ) конец order ) конец customer ) ; конец customers string xmlFileName = @ C:\BegVCSharp\Chapter2 9\Xml\NorthwindCustomerOrders.xml ; northwindCustomerOrders.Save(xmlFileName);
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |