| Имя класса | Описание |
|---|---|
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;