2.2. ОБРАБОТКА ДЕРЕВА XML ДОКУМЕНТА С ИСПОЛЬЗОВАНИЕМ ОБЪЕКТОВ MSXML

В разделе 2.1. были рассмотрены объекты MSXML и их методы и свойства  для загрузки, анализа выполнения загрузки и сохранения XML документа. Когда XML документ успешно загружен, в памяти строится дерево узлов, которое можно программным способом обработать: просмотреть все или часть дерева, выделить поддерево, найти, добавить, удалить или модифицировать узлы.

 

Примечание. Многие действия, связанные с поиском, выделением узла или группы узлов более эффективно выполнять, используя возможности спецификации XPath (XML Path Language).

 

Возможные типы узлов DOM, их идентификаторы, имена, значения и атрибуты представлены в таблице 1.

                                                                                                  табл. 1

Тип узла

ID узла

имя узла

значение узла

атрибуты

зна-че-ние

константа

Element

1

ELEMENT

_NODE

имя тега

null

NameNodeMap

Attr

2

ATTRIBUTE

_NODE

имя атрибута

значение атрибута

null

Text

3

TEXT

_NODE

#text

содержание текстового узла

null

CDATASection

4

CDATA

_SECTION

_NODE

#cdata_section

содержание участка CDATA

null

EntityReference

5

ENTITY

_REFERENCE

_NODE

имя объекта

на который ссылается

null

null

Entuty

6

ENTITY

_NODE

имя объекта

null

null

ProcessingInstruction

7

PROCESSING

_INSTRUCTION

_NODE

имя

 приложения, которому адресована команда

все содержание за исключением имени приложения

null

Comment

8

COMMENT

_NODE

#comment

содержание комментария

null

Document

9

DOCUMENT

_NODE

#document

null

null

DocumentType

10

DOCUMENT

_TYPE_NODE

имя документа

null

null

DocumentFragment

11

DOCUMENT

_FRAGMENT

_NODE

#document

_fragment

null

null

Notation

12

NOTATION

_NODE

имя

обозначения

null

null

 

С точки зрения программиста в DOM каждый тип узла представляется соответствующим интерфейсом, который реализован в  MSXML объектом с набором методов и свойств. В таблице 2 представлены возможные типы узлов, соответствующие им объекты MSXML и допустимые иерархические взаимосвязи при построении дерева XML документа.

 

Тип узла

Объект MSXML

Может быть дочерним от узлов

Может иметь дочерние узлы

Document

IXMLDOMDocument

 

Element (максимум 1), ProcessingInstruction, Comment,  DocumentType

Element

IXMLDOMElement

Document, DocumentFragment, EntityReference, Element

Element, Text, Comment, ProcessingInstruction, CDATASection, EntityReference

Attr

IXMLDOMAttribute

 

Text, EntityReference

Text

IXMLDOMText

Attribute, DocumentFragment, Element, EntityReference

 

CDATASection

IXMLDOMCDATASection

DocumentFragment, EntityReference, Element

 

EntityReference

IXMLDOMEntityReference

Attribute, DocumentFragment, Element, EntityReference

Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference

Entity

IXMLDOMEntity

DocumentType

Text, EntityReference

ProcessingInstuction

IXMLDOMProcessingInstruction

Document, DocumentFragment, Element,  EntityReference

 

Comment

IXMLDOMComment

Document, DocumentFragment, Element,  EntityReference

 

DocumentType

IXMLDOMDocumentType

Document

Notation, Entity

DocumentFragment

IXMLDOMDocumentFragment

 

Element, ProcessingInstruction, Comment, Text, CDATASection,  EntityReference

Notation

IXMLDOMNotation

DocumentType

 

 

Кроме представленных в таблице 2 объектов, представляющих соответствующие узлы, DOM имеет еще два базовых интерфейса NodeList и NamedNodeMap.

 

В MSXML интерфейс NodeList реализован посредством объекта  IXMLDOMNodeList, а интерфейс NamedNodeMap посредством объекта IXMLDOMNamedNodeMap.

Используются технологии uCoz