tw.WriteEndElement();

 tw.WriteEndDocument();

 // очистить

 tw.Flush();

 tw.Close();

}

Создадим новый файл booknew.xml и добавим новую книгу. Объект XmlTextWriter заменит существующий файл. Вставку нового элемента или узла в существующий документ рассмотрим позже. Экземпляр объекта XmlTextWriter создается с помощью объекта FileStream в качестве параметра. Можно также передать строку с именем файла и путем доступа или объект на основе TextWriter. При задании свойства Indenting узлы-потомки будут автоматически делать отступ от предка. Метод WriteStartDocument() помещает объявление документа. Начинаем запись данных. Сначала идет элемент book. Затем добавляем атрибуты genre, publicationdate и ISBN. После чего записываем элементы title, author, и price. Отметим, что элемент author имеет элемент-потомок name.

После нажатия на кнопку будет создан следующий файл booknew.xml:

<?xml version='1 .0'?>

<book genre= 'Mystery' publicationdate='2001' ISBN='123456789'>

 <title>Case of the Missing Cookie</title>

 <author>

  <name>Cookie Monster</name>

 </author>

 <price>9,99</price>

</book>

Так же как в документе XML, здесь имеются начальный метод и конечный метод (WriteStartElement и WriteEndElement). Вложенность контролируется отслеживанием начала и окончания записи элементов и атрибутов. Это можно видеть при добавлении элемента потомка name к элементу authors. Отметим, как организуются вызовы методов WriteStartElement и WriteEndElement и как это связывается с выведенным документом XML.

В дополнение к WriteElementString и WriteAtributeString имеется несколько других специализированных методов записи. Метод WriteCDate будет выводить раздел CDate (<!CDATE[...]]>), взяв текст для записи из параметра. WriteComment записывает комментарий в подходящем формате XML. WriteChars записывает содержимое символьного буфера. Это работает аналогично методу ReadChars, который был рассмотрен ранее. Оба они используют один и тот же тип параметров. Методу WriteChar нужен буфер (массив символов), начальная позиция для записи (целое значение) и число символов для записи (целое значение).

Чтение и запись XML с помощью классов, основанных на XMLReader и XMLWriter, осуществляются очень просто. Далее мы рассмотрим реализацию DOM пространства имен System.Xml. Это классы на основе XmlDocument и XmlNode.

Объектная модель документа в .NET

Реализация объектной модели документа (DOM, Document Object Model) в .NET поддерживает спецификации W3C DOM Level 1 и Core DOM Level 2. DOM реализуется с помощью класса XmlNode. XmlNode является абстрактным классом, который представляет узел документа XML. XmlNodeList является упорядоченным списком узлов. Это живой список узлов, и любые изменения в любом узле немедленно отражаются в списке. XmlNodeList поддерживает индексный доступ или итеративный доступ. Эти два класса составляют основу реализации DOM на платформе .NET. Вот список классов, которые основываются на XmlNode.

Имя класса Описание
XmlLinkedNode Расширяет XmlNode. Возвращает узел непосредственно перед или после текущего узла. Добавляет свойства NextSibling и PreviousSibling в XmlNode.
XmlDocument Расширяет XmlNode. Представляет весь документ. Реализует спецификации DOM Level 1 и Level 2.
XmlAttribute Расширяет XmlNode. Объект атрибута объекта XmlElement.
XmlCDataSection Расширяет XmlCharacterData. Объект, который представляет раздел документа CData.
XmlCharacterData Абстрактный класс, который предоставляет методы манипуляции с текстом для других классов. Расширяет XmlLinkedNode.
XmlComment Расширяет XmlCharacterData. Представляет объект комментария XML.
XmlDeclaration Расширяет XmlLinkedNode. Представляет узел объявления (<?xml version='1.0' ...>)
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату
×