Лекция Работа с xml в. Net план Классы для работы с xml. Net чтение и запись потоков данных Xml Использование класса XmlReader Методы чтения данных icon

Лекция Работа с xml в. Net план Классы для работы с xml. Net чтение и запись потоков данных Xml Использование класса XmlReader Методы чтения данных




Скачати 111.24 Kb.
НазваЛекция Работа с xml в. Net план Классы для работы с xml. Net чтение и запись потоков данных Xml Использование класса XmlReader Методы чтения данных
Дата25.10.2012
Розмір111.24 Kb.
ТипЛекция
1. /XML-Лекция 1. концепция Семантического Веб.doc
2. /XML-Лекция 10. XSL.doc
3. /XML-Лекция 11. Сортировка и фильтрация.doc
4. /XML-Лекция 12. Другие способы отображения XML документов.docx
5. /XML-Лекция 13. XLINK.doc
6. /XML-Лекция 14_RDF.doc
7. /XML-Лекция 15_OWL.doc
8. /XML-Лекция 1_Презентация.docx
9. /XML-Лекция 2. Основы XML.doc
10. /XML-Лекция 3. Создание XML-документов.doc
11. /XML-Лекция 4. Обработка XML в C#.docx
12. /XML-Лекция 5. Создание XML-документов в C#.docx
13. /XML-Лекция 6. Отображение XML-документов в помощью CSS.doc
14. /XML-Лекция 7. Атрибуты и пространства имен.doc
15. /XML-Лекция 8. Определение типа документа.doc
16. /XML-Лекция 9. Схемы XSD.doc
“семантический web и языки информационного обмена”
Тема Обработка документов xml лекция 10. Способы преобразования документов xml план
Тема Обработка документов xml лекция 11. Фильтрация и сортировка данных xml план
Лекция 12. Другие способы отображения xml документов План Связывание xml данных с html страницей с помощью dso
Тема Связь xml документов Лекция 12. Создание ссылок на языке xlink
Стандарты rdf пример практического применения rdf
Языки онтологий Создание онтологий в редакторе Protégé-2000
Тема концепция семантического web
Тема Язык xml лекция Введение
Тема Основы xml лекция Создание и отображение xml-документа
Лекция Работа с xml в. Net план Классы для работы с xml. Net чтение и запись потоков данных Xml Использование класса XmlReader Методы чтения данных
Лекция Создание xml-документов в. Net план Использование класса XmlWriter запись потоков данных Xml Использование dom в. Net Чтение xml-документа с помощью XmlNodeList
Тема Основы xml лекция Применение css для отображения xml-документа
Тема Основы xml лекция 7
Тема xml-схемы – описание структуры документа лекция Определение типа документа (dtd document Type Definition)
Тема xml-схемы – описание структуры документа лекция Описание схемы документа средствами xsd (xml schema Definition language)

Лекция 4. Работа с XML в .NET


План

1. Классы для работы с XML .NET

2. Чтение и запись потоков данных Xml

2.1. Использование класса XmlReader

2.2. Методы чтения данных

2.3. Контроль типов данных при чтении Xml-документа

3. Создание XML-документа в Visual Studio


1. Классы для работы с XML .NET


Многие составляющие технологии .NET неразрывно связаны с XML. А значит, XML хорошо поддерживается со стороны Framework Class Library. В .NET поддерживаются следующие технологии:

  • XML 1.0

  • пространства имен XML

  • XSD схемы

  • выражения XPath

  • XSL преобразования

  • DOM Level 1 Core, DOM Level 2 Core

Среда .NET Framework не только позволяет применять XML в создаваемых приложениях, но и сама применяет его в конфигурационных файлах, документации по исходному коду и в манифесте сборки.


Пример 1. Манифест сборки
























Классы для работы с XML собраны в пространстве имен System.Xml. Это пространство загружается вместе с классами, которые могут использоваться для обработки данных XML.


Таблица 1. Основные классы чтения и записи данных XML


XmlReader

Абстрактный класс, выполняющий чтение и обеспечивающий быструю доставку некешированных данных XML. Класс представляет собой однонаправленный синтаксический анализатор

XmlWriter

Абстрактный класс, выполняющий запись данных в виде потока или файла

XmlTextReader

Расширяет возможности класса XmlReader. Обеспечивает однонаправленный потоковый доступ к данным XML

XmlTextWtiter

Расширяет возможности класса Xml.Writer. Обеспечивает быструю однонаправленную генерацию потоков XML



Таблица 2. Некоторые классы обработки данных XML







XmlNode

Абстрактный класс, представляющий один узел в XML-документе. Базовый класс для некоторых других классов

XmlDocument

Расширяет класс XmlNode. Представляет собой реализацию DOM от W3C. Обеспечивает древовидное представление XML-документа в памяти с возможностями навигации и редактирования

XmlNavigator

Обеспечивает навигацию по документу

XMLDataDocument

служит мостом между хранилищами данных и реляционными данными, хранящимися в DataSet



2. Чтение и запись потоков данных Xml

Среда .NET Framework поддерживает два способа обработки XML-документов: потоковый ввод-вывод и DOM. Абстрактные классы XmlReader, XmlWriter и порожденные от них классы поддерживают потоковую модель ввода-вывода.

Классы, основанные на XmlReader обеспечивают быстрый однонаправленный курсор, который организует поток данных XML для обработки.

От XmlReader порождены следующие классы:

XmlNodeReader

использует XmlNode как источник вместо потока

XmlTextReader

Обеспечивает однонаправленный потоковый доступ к данным XML

XmlValidatingReader

добавляет определение шаблона DTD (Document TypeDefinition) и обеспечивает проверку достоверности данных



От XmlWriter порождены следующие классы:

XmlTextWriter

Расширяет возможности класса Xml.Writer. Обеспечивает быструю однонаправленную генерацию потоков XML

XmlQueryOutput

Расширяет возможности класса Xml.Writer, Обеспечивает функциональность, необходимую для вывода результатов преобразований XSLT.

Для работы с данными каждый из классов предоставляет необходимые методы.

2.1. Использование класса XmlReader

Пример чтения данных XML из файла. Данные хранятся в файле "book2.xml" и представляют собой описание книжного каталога:







Страны Мира

Книжний Клуб

Харьков


380

$4.00






Секреты работы в Windows

Дэвид Маккормик

Харьков


300

$5.20






Выбор и модернизация компьютера

Михаил Кутузов

Питер - Москва


320

$6.30






3d max

Кэлли Мердок

Киев-Москва


1050

$10.95






Система Программирования Delphi

Волков Андрей

Москва


800

$10.95






Как собрать свой компьютер

Джон Косли

Москва


300

$6.90








dfsdfdfsdf

sdfsdf

фіваваіва


234

$12.8







Создадим форму с двумя кнопками и текстовым редактором (richTextBox1), в который будем размещать прочитанные данные.



При нажатии кнопки ReadXml выполняется чтение и разбор XML-файла и вывод его в текстовый редактор. Обработчик кнопки ReadXML_Click:

private void ReadXML_Click(object sender, EventArgs e)

{

//чтение файла

richTextBox1.Clear(); //очистка редактора

XmlReader rdr = XmlReader.Create("book2.xml");//создание объекта rdr

while (rdr.Read())

{

if (rdr.NodeType == XmlNodeType.Text)

richTextBox1.AppendText(rdr.Value + "\r\n");

}


}


Класс XmlReader является абстрактным, т.есть, для таких классов нельзя создавать объекты оператором new. Для того, чтобы его можно было использовать, нужно включить в него статические методы.

В этом обработчике используется статический метод Create, который возвращает объект XmlReader. Дальше в цикле while выполняется чтение каждой строки файла . По мере чтения производится проверка свойства NodeType. Если узел является текстовым, в текстовый редактор добавляется его содержимое.



2.2. Методы чтения данных

Классы для работы с XML предоставляют несколько способов передвижения по XML-документу. Например, метод Read() перемещает на следующий узел. Потом можно проверить, имеет ли этот узел содержимое (HasValue() ) или атрибуты (YasAttributes()).

Основные методы анализа документа представлены в таблице ниже.

Read()

читает очередную запись и перемещает на следующий узел

HasValue()

возвращает true, если элемент имеет содержимое, false – противном случае

HasAttributes()

просматривает элемент на наличие атрибутов. Возвращает true, если элемент имеет содержимое, false – противном случае

ReadStartElement()

проверяет, является ли узел корневым, после чего смещается на следующий узел. Если узел не корневой, возбуждается исключение XmlException.

IsStartElement()

аналогичен методу ReadStartElement()

ReadString()

чтение одной строки из файла, содержащего документ

ReadElementString()

подобен методу ReadString() за исключением того, что ему можно передать имя элемента. Если следующий узел с содержимым не является начальным дескриптором или если параметр Name не совпадает с текущим параметром узла, возбуждается исключение

MoveToContent()

перемещение к содержимому узла


Пример 2. Вывод отдельных элементов XML-документа

Рассмотрим применения метода ReadElementString() и других методов, а также применение файловых потоков (чтения из файла).

Не забыть подключить using System.IO;

Добавим на форму кнопку Read from file. Код обработчика будет следующим:


private void btmReadXml2_Click(object sender, EventArgs e)

{

//чтение только название книг (элемент "TITLE"

richTextBox1.Clear();

FileStream fs = new FileStream("book2.xml", FileMode.Open);

XmlReader rdr = XmlReader.Create(fs);

while (!rdr.EOF)

{

//Если попадаем на тип элемента, проверить его и загрузить в окно

if (rdr.MoveToContent() == XmlNodeType.Element && rdr.Name == "TITLE")

{

richTextBox1.AppendText(rdr.ReadElementString() + "\r\n");

}

else

{

// в противном случае - переместиться на след.запись


rdr.Read();

}


}

}


В этом примере в цикле while используется метод MoveToContent() для поиска узла типа XmlNodeType. Element с названием книги rdr.Name == "TITLE")

if (rdr.MoveToContent() == XmlNodeType.Element && rdr.Name == "TITLE")

Просмотр выполняется до конца файла (условие цикла

while (!rdr.EOF)


Если типом узла не является элемент или его имя не совпадает с "TITLE", то вызывается метод Read() для перехода к следующему узлу. Если очередной узел "TITLE" найден, его содержимое добавляется в окно вывода. Таким образом, будут выведены только названия книг.

2.3. Контроль типов данных при чтении Xml-документа

Класс XmlReader также позволяет считывать данные со строгим контролем типов. Для этого используются методы ReadElementContentAs... ReadElementContentAsDouble(), ReadElementContentAsBoolean() и другие. Далее показано как можно считывать значение в десятичном формате и выполнять вычисления. В примере выбирается значение цены книги, которое увеличивается на 25%.

Создадим еще одну кнопку с надписью New Price, а в ее обработчике напишем код:


private void btnNewPrice_Click(object sender, EventArgs e)

{

//Обработчик кнопки NewPrice - контроль типов

richTextBox1.Clear();

XmlReader rdr = XmlReader.Create("book2.xml");

while (rdr.Read())

{

if (rdr.NodeType == XmlNodeType.Element)

{

if (rdr.Name == "PRICE")

{

decimal price = rdr.ReadElementContentAsDecimal();

richTextBox1.AppendText("Curent Price = "+ price+ "\r\n");

price += price * (decimal)0.25;

richTextBox1.AppendText("New Price = " + price + "\r\n\r\n");

}

else if (rdr.Name=="TITLE")

richTextBox1.AppendText(rdr.ReadElementContentAsString()+"\r\n");

}

}

rdr.Close();

}


Если это значение не может быть преобразовано к требуемому типу, возбуждается исключение FormatException.

Компилируем и запускаем на выполнение наш проект.

В результате получаем сообщение об ошибке. Причина – текст элемента имеет вид:


$10.95

Исправим все элементы 10.95,

а документ сохраним под именем ("book3.xml");

В результате получим:




3. Создание XML-документа в Visual Studio

Для создания XML-файла в среде Visual Studio нужно в меню File выбрать New->File. В окне создания выбрать Xml-файл





Откроется Xml-редактор, в котором можно вводить элементы Xml. Редактор автоматически проверяет ошибки и подставляет закрывающие теги. Созданный файл можно сохранить в нужном месте на диске командой SaveXmlFile.xml As...


Схожі:

Лекция Работа с xml в. Net план Классы для работы с xml. Net чтение и запись потоков данных Xml Использование класса XmlReader Методы чтения данных iconІнформації про предметну область. Вивчаються основні технології, пов’язані з аналізом І трансформацією xml-документів (xslt та xpath, sax, dom та TrAX), описом структури документів (dtd та xmlschema). Розглядаються також специфікації xlink та xpointer
Вивчення курсу передбачає виконання практичного Інтернет-проекту, основними цілями якого є розробка інформаційної системи з підтримкою...
Лекция Работа с xml в. Net план Классы для работы с xml. Net чтение и запись потоков данных Xml Использование класса XmlReader Методы чтения данных iconЛабораторная работа №11 Знакомство с субд ms access: работа с существующей базой данных, фильтры по данным. Вариант 15 Скопировать базу данных «Борей»
Ть базу данных «Борей» (файл nwind. Mdb) из папки M:\msoffice\Office\Samples в свою рабочую папку. Изменить свойства файла: сделать...
Лекция Работа с xml в. Net план Классы для работы с xml. Net чтение и запись потоков данных Xml Использование класса XmlReader Методы чтения данных iconЛабораторная работа №11 Знакомство с субд ms access: работа с существующей базой данных, фильтры по данным. Вариант 10 Скопировать базу данных «Борей»
Ть базу данных «Борей» (файл nwind. Mdb) из папки M:\msoffice\Office\Samples в свою рабочую папку. Изменить свойства файла: сделать...
Лекция Работа с xml в. Net план Классы для работы с xml. Net чтение и запись потоков данных Xml Использование класса XmlReader Методы чтения данных iconЛабораторная работа №11 Знакомство с субд ms access: работа с существующей базой данных, фильтры по данным. Вариант 11 Скопировать базу данных «Борей»
Ть базу данных «Борей» (файл nwind. Mdb) из папки M:\msoffice\Office\Samples в свою рабочую папку. Изменить свойства файла: сделать...
Лекция Работа с xml в. Net план Классы для работы с xml. Net чтение и запись потоков данных Xml Использование класса XmlReader Методы чтения данных iconЛабораторная работа №11 Знакомство с субд ms access: работа с существующей базой данных, фильтры по данным. Вариант 12 Скопировать базу данных «Борей»
Ть базу данных «Борей» (файл nwind. Mdb) из папки M:\msoffice\Office\Samples в свою рабочую папку. Изменить свойства файла: сделать...
Лекция Работа с xml в. Net план Классы для работы с xml. Net чтение и запись потоков данных Xml Использование класса XmlReader Методы чтения данных iconДокументи
1. /Лекция 1. Основы РС.docx
2. /Лекция...

Лекция Работа с xml в. Net план Классы для работы с xml. Net чтение и запись потоков данных Xml Использование класса XmlReader Методы чтения данных iconРазработка Web-сервиса на основе php и Mysql
На платформе Microsoft. Net или J2ee web-сервис представляет собой развитый сервер на основе wsdl (Web Service Definition Language),...
Лекция Работа с xml в. Net план Классы для работы с xml. Net чтение и запись потоков данных Xml Использование класса XmlReader Методы чтения данных iconЛекция 12
Использование статистических методов содействует пониманию изменений, а следовательно помогает организациям устранить трудности и...
Лекция Работа с xml в. Net план Классы для работы с xml. Net чтение и запись потоков данных Xml Использование класса XmlReader Методы чтения данных iconБаза данных – это совокупность взаимосвязанных, хранящихся вместе данных, с той минимальной избыточностью, позволяющей использовать эти данные в нескольких приложениях. Реляционные базы данных
Знакомство с субд ms access: работа с существующей базой данных, фильтры по данным
Лекция Работа с xml в. Net план Классы для работы с xml. Net чтение и запись потоков данных Xml Использование класса XmlReader Методы чтения данных iconИспользование списка в качестве базы данных
В microsoft Excel в качестве базы данных можно использовать список. При выполнении обычных операций с данными, например, при поиске,...
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи