- •Лекция 5. Создание xml-документов в .Net
- •1. Использование класса XmlWriter - запись потоков данных Xml
- •2. Использование dom в .Net
- •2.1. Чтение xml-документа с помощью XmlNodeList
- •2.2. Вставка элементов (узлов) в xml- документ
- •3. Обработка атрибутов
- •3.1. Извлечение атрибутов с помощью XmlReader
- •3.2. Вставка атрибутов в документ с помощью XmlWriter
2. Использование dom в .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' ...>) |
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. Диаграмма наследования классов.
