Методические указания к лабораторной работе по дисциплине «Постреляционные базы данных»


Скачать 294.36 Kb.
НазваниеМетодические указания к лабораторной работе по дисциплине «Постреляционные базы данных»
страница3/4
ТипМетодические указания
1   2   3   4

Работа с различными объектами XML


Помимо возможности создания LINQ-запросов в .NET 4 предлагаются различные объ­екты XML, которые работают настолько хорошо, что могут иметь свое собственное место за пределами LINQ. Эти объекты могут применяться вместо непосредственной работы с DOM. Они называются вспомогательными объектами LINQ to XML, размещаются в про­странстве имен System. Xml. Linq и способны значительно упростить взаимодействие с XML-документом в памяти.

В следующих разделах кратко показано, как использовать доступные в этом простран­стве имен объекты.

Объект XDocument


Объект XDocument является заменой объекта XmlDocument, который применялся в .NET 3.5, с ним гораздо легче работать, чем с XML-документами. Он используется совме­стно с другими новыми объектами в этой же области, такими как XNamespace, XComment, XElement и XAttribute.

Одним из наиболее важных членов объекта XDocument является метод Load ():

XDocument.Load(@"С:\Hamlet.xml");

Эта операция приведет к загрузке содержимого файла Hamlet, xml в память в виде объекта XDocument. Методу Load() можно также передавать объект TextReader или Xml Reader. После этого с XML можно работать из кода:

XDocument xdoc = XDocument.Load(@"С:\Hamlet.xml");

Console.WriteLine(xdoc.Root.Name.ToString());

Console.WriteLine(xdoc.Root.HasAttributes.ToString());
Другим важным членом XDocument является метод Save (), который подобно методу Load () позволяет сохранять XML-данные на физическом диске либо в объекте TextWriter или XmlWriter:

XDocument xdoc = XDocument.Load(@"С:\Hamlet.xml");

xdoc.Save(@"С:\CopyOfHamlet.xml");

Объект XElement


С объектом XElement придется работать чаще всего. С его помощью легко создавать отдельные объекты элементов, представляющие собой как целые документы XML, так и их отдельные фрагменты. Ниже показан пример создания XML-элемента с соответствующим значением:

XElement хе = new XElement("Company", "Lipper");

Console. WnteLme (xe. ToString ());

Объект XAttribute


Другим важным фактором XML, помимо элементов, являются атрибуты. Добавлять и работать с атрибутами позволяет объект XAttribute. Ниже показан пример добавления атрибута в корневой узел <Company>:

XElement xe = new XElement("Company",

new XAttribute ("MyAttribute", "MyAttnbuteValue"),

new XElement ("CompanyName", "Lipper"),

new XElement ("CompanyAddress",

new XElement ("Address", "123 Main Street"),

new XElement ("City", "St. Louis"),

new XElement ("State", "MO"),

new XElement ("Country", "USA")));

Создание XML на основе запроса к БД


var arr = db.roads;

XDocument doc=new XDocument(new XElement("root"));

foreach (var i in arr)

{

doc.Root.Add(new XElement("road",

new XAttribute("src",i.src),

new XAttribute("dest",i.dest),

new XElement("cost",i.cost) ) );

foreach (var b in i.builders)

{

doc.Root.Elements().Last().Add(new XElement("builder",

new XAttribute("name", b.title),

new XAttribute("beg", b.year_beg),

new XAttribute("eend", b.year_end),

new XElement("per", b.period)));

}

}

doc.Save("c:\\abc.xml");

Использование LINQ для выдачи запросов к документам XML


Теперь, когда известно, как помещать XML-документы в объект XDocument и работать с различными их частями, можно посмотреть на применение LINQ to XML для выдачи запросов к XML-документам и обработки результатов.

Как будет показано ниже, для запроса статического XML-документа с помощью LINQ to XML не понадобится прилагать почти никаких усилий. Ниже приведен пример выдачи запроса к файлу hamlet.xml для получения списка всех персонажей (актеров), которые принимают участие в пьесе. Каждый из этих персонажей представлен в XML-документе элементом <PERSONA>.

XDocument xdoc = XDocument.Load(@"C:\hamlet.xml");

var query = from people in xdoc.Descendants("PERSONA")

select people.Value;

Console.WnteLine("Найдено {0} персонажей", query.Count());

Console.WnteLine();

foreach (var item in query)

{

Console.WnteLine (item);

}

Console. ReadLme ();

В наши дни динамические XML-документы встречаются в Интернете очень часто. Они формируются в каналах блогов, подкастов и т.п. за счет отправки запроса по конкретно­му конечному ULR-адресу. Эти каналы могут просматриваться как в браузере посредством специального RSS-arpeгатора, так и в виде чистого XML. Ниже показан пример работы с RSS-каналом непосредственно из кода.

XDocument xdoc = XDocument.Load(@"http://geekswithblogs.net/evjen/Rss.aspx");

Работа с документом XML


При проработке примеров с XML-документом hamlet.xml можно было заметить, что он является довольно большим. Пока что в этой главе было показано лишь несколько спо­собов, которыми можно запрашивать данные из XML-документов, а в следующем разделе демонстрируется методика чтения и записи данных в XML-документ.

Чтение данных из документа XML


Ранее уже было показано, насколько легко отправлять запросы в XML-документ с при­менением операторов запросов LINQ вроде следующего:

var query = from people in xdoc.Descendants("PERSONA")

select people.Value;
Этот запрос возвращает всех персонажей, найденных в документе. С использованием метода Element () объекта XDocument из XML-документа можно извлечь конкретные зна­чения, с которым будет производиться работа. Например, следующий фрагмент XML пока­зывает, каким образом в документе hamlet .xml представлен элемент <TITLE>:


The Tragedy of Hamlet, Prince of Denmark

XML
удален для ясности—>


Нетрудно заметить, что элемент TITLE> вложен в элемент <PLAY>. Следовательно, к нему легко добраться с помощью следующего фрагмента кода в консольном приложении:

XDocument xdoc = XDocument.Load(@"С:\hamlet.xml");

Console.WriteLine(xdoc.Element("PLAY").Element("TITLE").Value);

Запись данных в документ XML


Запись данных в документ XML осуществляется так же легко, как и чтение. Например, чтобы изменить имя первого персонажа в файле hamlet. xml, можно воспользоваться сле­дующим кодом:

XDocument xdoc = XDocument.Load(@"C:\hamlet.xml");
xdoc.Element("PLAY").Element("PERSONAE").Element("PERSONA").SetValue("Bill Evjen, king of Denmark");
Console.WriteLine(xdoc.Element("PLAY").Element("PERSONAE").Element("PERSONA").Value);
В данном случае первый экземпляр элемента <PERSONA> перезаписывается значением Bill Evjen, king of Denmark с помощью метода SetValue() объекта Element(). После вызова метода SetValue() и применения значения к XML-документу это значение затем извлекается с использованием того же подхода, что раньше. После выполнения этого фрагмента кода можно увидеть, что значение первого элемента <PERSONA> изменилось.

Другим способом изменения документа (в рассматриваемом примере — для добавления в него элементов) является создание нужных элементов в виде объектов XElement и затем их добавление в документ.

XDocument xdoc = XDocument.Load(@"C:\hamlet.xml");
XElement xe = new XElement("PERSONA","Bill Evjen, king of Denmark");
xdoc.Element("PLAY").Element("PERSONAE").Add(xe);
var query = from people in xdoc.Descendants("PERSONA")

select people.Value;
Console.WriteLine("Найдено {0} персонажей", query.Count());
Console.WriteLine();
foreach (var item in query)

{

Console.WriteLine(item);

}


1   2   3   4

Похожие:

Методические указания к лабораторной работе по дисциплине «Постреляционные базы данных» iconМетодические указания к лабораторным работам по дисциплине «Постреляционные базы данных»
Целью лабораторной работы является практическое изучение возможностей постреляционного расширения языка sql для создания хранимых...

Методические указания к лабораторной работе по дисциплине «Постреляционные базы данных» iconМетодические указания к практическим работам по дисциплине «Базы данных»
Методические указания предназначены для проведения практических занятий по дисциплине «Базы данных», для специальности ксиК

Методические указания к лабораторной работе по дисциплине «Постреляционные базы данных» iconМетодические указания к лабораторной работе «делопроизводство»
Андреев Б. Ф., Гусева А. И. Методические указания к лабораторной работе «Делопроизводство» для студентов специальности «Менеджмент...

Методические указания к лабораторной работе по дисциплине «Постреляционные базы данных» iconПояснительная записка к курсовой работе по дисциплине «Базы данных»
Метод исследования – моделирование базы данных в программе Microsoft Access 2013

Методические указания к лабораторной работе по дисциплине «Постреляционные базы данных» iconМетодические указания для выполнения курсового проекта по дисциплине «Базы данных»
Одобрена предметной комиссией «программного обеспечения и информационных технологий»

Методические указания к лабораторной работе по дисциплине «Постреляционные базы данных» iconПояснительная записка к курсовой работе по дисциплине «Базы данных»
Фио, категория клиента, паспортные данные (свидетельства о рождении), контактные данных)

Методические указания к лабораторной работе по дисциплине «Постреляционные базы данных» iconПояснительная записка к курсовой работе по дисциплине «Базы данных»
Спроектировать реляционную базу данных «Магазин дисков для детей «Childs Dream»». Бд обеспечивает выполнение следующих запросов

Методические указания к лабораторной работе по дисциплине «Постреляционные базы данных» iconМетодические указания для выполнения лабораторных работ и «Базы данных»
Лабораторная работа №1 «Организация хранения данных в субд ms access»

Методические указания к лабораторной работе по дисциплине «Постреляционные базы данных» iconЛабораторная работа №1 Принципы Управления проектами с использованием microsoft project 6
Управление проектами с помощью Microsoft Project: Методические указания к лабораторной работе по дисциплине «Основы организационного...

Методические указания к лабораторной работе по дисциплине «Постреляционные базы данных» iconМетодические указания для архивных отделов (архивов) муниципальных...
Информация базы данных служит основой для составления отчетов, паспорта архива, сведений для фондовых каталогов, может быть использована...

Вы можете разместить ссылку на наш сайт:


Все бланки и формы на filling-form.ru




При копировании материала укажите ссылку © 2019
контакты
filling-form.ru

Поиск