Симон Робинсон - C# для профессионалов. Том II
- Название:C# для профессионалов. Том II
- Автор:
- Жанр:
- Издательство:Лори
- Год:2003
- Город:Москва
- ISBN:5-85582-187-0
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Симон Робинсон - C# для профессионалов. Том II краткое содержание
Платформа .NET предлагает новую среду, в которой можно разрабатывать практически любое приложение, действующее под управлением Windows, а язык C# — новый язык программирования, созданный специально для работы с .NET.
В этой книге представлены все основные концепции языка C# и платформы .NET. Полностью описывается синтаксис C#, приводятся примеры построения различных типов приложений с использованием C# — создание приложений и служб Windows, приложений и служб WWW при помощи ASP.NET, а также элементов управления Windows и WWW Рассматриваются общие библиотеки классов .NET, в частности, доступ к данным с помощью ADO.NET и доступ к службе Active Directory с применением классов DirectoryServices.
Для кого предназначена эта книгаЭта книга предназначена для опытных разработчиков, возможно, имеющих опыт программирования на VB, C++ или Java, но не использовавших ранее в своей работе язык C# и платформу .NET. Программистам, применяющим современные технологии, книга даст полное представление о том, как писать программы на C# для платформы .NET.
Основные темы книги• Все особенности языка C#
• C# и объектно-ориентированное программирование
• Приложения и службы Windows
• Создание web-страниц и web-служб с помощью ASP NET
• Сборки .NET
• Доступ к данным при помощи ADO NET
• Создание распределённых приложений с помощью NET Remoting
• Интеграция с COM, COM+ и службой Active Directory
C# для профессионалов. Том II - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
tw.WriteStartElement("author");
tw.WriteElementString("name", "Cookie Monster");
tw.WriteEndElement();
tw.WriteElementString("price", "9.99");
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
:
Cookie Monster
9,99
Так же как в документе XML, здесь имеются начальный метод и конечный метод ( WriteStartElement
и WriteEndElement
). Вложенность контролируется отслеживанием начала и окончания записи элементов и атрибутов. Это можно видеть при добавлении элемента потомка name
к элементу authors
. Отметим, как организуются вызовы методов WriteStartElement
и WriteEndElement
и как это связывается с выведенным документом XML.
В дополнение к WriteElementString
и WriteAtributeString
имеется несколько других специализированных методов записи. Метод WriteCDate
будет выводить раздел 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 . Представляет узел объявления ( ) |
XmlDocumentFragment |
Расширяет XmlNode . Представляет фрагмент дерева документа. |
XmlDocumentType |
Расширяет XmlLinkedNode . Данные, связанные с объявлением типа документа. |
XmlElement |
Расширяет XmlLinkedNode . Объект элемента XML. |
XmlEntity |
Расширяет XmlNode . Синтаксически разобранный или неразобранный узел сущности. |
XmlEntityReferenceNode |
Расширяет XmlLinkedNode . Представляет ссылочный узел сущности |
XmlNotation |
Расширяет XmlNode . Содержит нотацию, объявленную в DTD или в схеме. |
XmlProcessingInstruction |
Расширяет XmlLinkedNode . Содержит инструкцию обработки XML. |
XmlSignificantWhitespace |
Расширяет XmlCharacterData . Представляет узел с разделителем. Узлы создаются, только если флаг PreserveWhiteSpace задан как true . |
XmlWhitespace |
Расширяет XmlCharacterData . Представляет разделитель в содержимом элемента. Узлы создаются, только если флаг PreserveWhiteSpace задан как true . |
XmlText |
Расширяет XmlCharacterData . Текстовое содержимое элемента или атрибута. |
Как можно видеть .NET делает доступным класс, соответствующий почти любому типу XML. Мы не будем рассматривать каждый класс подробно, но разберем несколько примеров. Вот как выглядит диаграмма наследования:

Первый пример будет создавать объект XmlDocument
, загружать документ с диска и загружать окно списка с данными из элементов title
. Это аналогично одному из примеров, которые были выполнены в разделе XmlReader
. Отличие заключается в том, что осуществляется выбор, с какими узлами мы хотим работать, вместо того чтобы использовать весь документ. Вот код для выполнения этого в среде XmlNode
. Посмотрите, как просто он выглядит при сравнении (файл можно найти в папке DOMSample1
загруженного архива):
private void button1_Click(object sender. System.EventArgs e) {
// doc объявлен на уровне модуля
// изменить путь доступа в соответствии со структурой путей доступа
doc.Load("..\\..\\..\\books.xml")
// получить только те узлы, которые нужны
XmlNodeList nodeLst=doc.GetElementsByTagName("title");
// итерации по списку XmlNodeList
foreach(XmlNode node in nodeLst) listBox1.Items.Add(node, InnerText);
}
Обратите внимание, что мы добавили следующее объявление на уровне модуля:
private XmlDocument doc=new XmlDocument();
Если бы это было все, что нужно делать, то использование XmlReader
было бы значительно более эффективным способом загрузки окна списка. Причина в том, что мы прошли через документ один раз и затем закончили с ним работу. Однако, если желательно повторно посетить узел, то использование XmlDocument
является лучшим для этого способом. Слегка расширим пример (новая версия находится в DOMSample2
):
Интервал:
Закладка: