Лекция: Dim reader As new XmlTextReader (file name with path)
Требуется задать полный путь к файлу. Это можно сделать, используя метод Server.HapPath. Для чтения данных можно использовать метод Read
Do While (reader.Read()}
проводим работу с данным
Loop
Работа с данными XML с помощью XmlTextReader
1: <%@ Page Language=«VB» %>
2: < Import Namespace=«System.Xml>
3:
4: <script runat=server>
5: sub Page_Load(obj as object, e as eventargs)
6: dim reader as XmlTextReader определяется объект класса XmlTextReader
7:
9: reader = new XmlTextReader(Server.MapPath (»books.xml")) открывается XML-файл
11: While reader.Read()
12: Response.Write(" reader.Name & reader.Value ")
14: End While
18: reader.Close
20: end sub
21: </script>
23: <html><body>
25: </bodyx/html>
Далее, метод Read в цикле последовательно считывает все записи XML-файла. Затем формируются HTML-строки, содержащие данные name и value, которые передаются браузеру.
XmlTextReader обладают достаточно ограниченной функциональностью. Они не следят за тем, какие именно дескрипторы возвращаются, — они возвращают их все!
Для управления этим процессом класс XmlTextReader имеет свойство NodeType, когорое указывает, какой именно тип данных мы ищем.
В таблице 11.1 перечислены наиболее общие типы:
Таблица 11.1. Значения свойства NodeType класса XmlTextReader
Тип | Описание ПАРУ ШТУК, ЕСЛИ ВРЕМЯ БУДЕТ! |
Аll | Все |
Attribute | Атрибут |
CDATA | Исключает текст, который может быть интерпретирован как язык пометок (например HTML) |
Comment | Комментарий, заключенный в тэги <!— — > |
Document | Корень дерева данных XML |
Element | Элемент, фактические данные XML-файла |
EndTag | Конец элемента |
None | Не рассматривается |
Text | Возвращает текстовое содержание элемента |
XMLDeclaration | Оператор описания XML, например <?XHL version='1.0'> |
Запись в XML
Класс XmlTextWriter делает операцию записи в XML-файл. Этот класс содержит метод Write, осуществляющий непосредственную запись.
Листинг 11.5. Запись в XML-файл с помощью класса XmlTextWriter
ПРИМЕР ПЕРЕПИСАЛА!
1: <%fl Page Language=«VB» %>
2: <%$ Import Namespace=«System.Xml11 %>
3:
4: <script runat=server>
5: sub Page_Load(obj as object, e as eventargs)
6: dim writer as XMLTextWriter
7:
8: try
9: writer = new XMLTextWriter{Server.MapPath (»books2.xml"), nothing}
11:
12: writer.WriteStartDocument
13: writer.Formatting = Formatting.Indented
14: writer.Indentation = 3
15: writer.WriteStartElement{«bookstore»)
16: writer.WriteStartElement(«book»)
17: writer.WriteAttributeString(«genre», «history»)
18: writer.WriteAttributeString(«style», «hardcover»)
19:
20: writer.WriteElementString{«title», «Vietnam»)
21:
22: writer.WriteStartElement(«author»)
23: writer.WriteElementStringf«first-name»,
24: «Michael»}
25: writer.WriteElementString{«last-name»,
26: «Avery»)
27: writer.WriteEndEleraentf)
28:
29: writer.WriteElementString(«price»,
30: «6.99»)
31: writer.WriteEndElement{}
32: writer.WriteEndElement()
33:
34: writer.Flush все содержимое объекта записывается в файл
35: catch ex as Exception
36: Response.Write(«Error accessing XML file»)
37: finally
36: writer.Close закрываем объект writer
39: Response.Write(«Finished processing»)
40: end try
41: end sub
42: </script>
43:
44: <html><body>
45:
46: </bodyx/html>
В строках 17—18 создаются атрибуты genre и style элемента <book> и им присваиваются значения с помощью метода WriteElementString, КОТОРЫЙ записывает открывающий и закрывающийс дескрипторы, определенные первым параметром, и помещает между ними строковс значение второго параметра.