- •Document Object Model Объектная модель документа
- •Цели занятия – 1
- •Модели документов
- •"Фабричные методы" – Factory Methods
- •Древовидная структура документа XML
- •Объекты в документе XML
- •Создание объекта XML
- •Пример проверки документа
- •Вывод результата работы Примера
- •Образец документа XML
- •Базовые объекты XML DOM
- •интерфейсов XML DOM и
- •Объект DOMDocument
- •Свойство async
- •Свойство Attribute
- •Свойство baseName
- •Свойство childNodes
- •Свойство documentElement
- •методов объекта DOMdocument
- •Метод createNode
- •Метод appendchild
- •Событие ondataavailable
- •Объект XMLDOMNode
- •Пример использования объекта XMLDOMNode
- •Свойства объекта XMLDOMNode
- •Свойство lastChild
- •Свойство nextSibling
- •Вывод результата работы примера
- •Свойство Xml
- •Методы объекта XMLDOMNode
- •Метод selectNodes
- •Объект XMLDOMNodeList
- •Свойство length
- •Вывод результата работы Примера
- •Метод nextNode
- •Объект
- •Методы объекта XMLDOMNamedNodeMap
- •Объект XMLDOMParseError
- •Свойство line
- •Свойство Linepos
- •Свойство srcText
- •Пример использования свойства srcText
- •Объект XMLDOMAttribute
- •Свойство nodeType
- •Пример использования свойства nodeType
- •Свойство value
- •Свойство text
- •Свойство ownerDocuemnt
- •свойства ownerDocument
- •Объект XMLDOMCDATASection
- •Свойство specified
- •Пример использования свойства specified
- •Метод splitText
- •Метод substringData
- •Пример использования метода substringData
- •Объект XMLDOMDocumentType
- •Свойства entities и name
- •Свойство nodeTypeString
- •Пример использования свойства nodeTypeString
- •Метод replaceChild
- •Метод removeChild
- •Объект XMLDOMEntity
- •Свойство notationName
- •Свойства prefix и publicId
- •Свойство systemId
- •Метод transformNode
- •Объект XMLDOMProcessingInstruc
- •Свойство parsed
- •Пример использования свойства parsed
- •Метод cloneNode
- •SAX против DOM
- •Подведение итогов – I
- •Подведение итогов – II
Свойство specified
Показывает, является ли атрибут заданным явно или унаследован от значения по умолчанию, заданного в DTD или в схеме
Возвращает логическое (Boolean) значение
Свойство предназначено только для чтения
Возвращает значение ‘true’ (истина), если атрибут задан явно в элементе
Возвращает значение ‘false’ (ложь), если значение атрибута взято из DTD или из схемы
Пример использования свойства specified
Пример:
<script language="vbscript"> Dim xmlDoc
Dim oNamedNodeMap
Dim cNode Dim myNode
Set xmlDoc = CreateObject("microsoft.xmldom") xmlDoc.async = False xmlDoc.load("candidate.xml")
Set cNode = xmlDoc.documentElement.childNodes.item(0) Set oNamedNodeMap = cNode.attributes
Set myNode = oNamedNodeMap.item(0) MsgBox myNode.specified
</script>
Метод splitText
Разделяет узел типа text на два узла типа text и вставляет новый текстовый узел в текущее дерево, как "брата", который следует непосредственно за разделённым узлом
Параметр, используемый в этом методе, имеет тип long integer (длинное целое)
Этот параметр задаёт количество символов для выполнения разделения данного текстового узла на два узла, начиная с нуля
Метод возвращает объект нового текстового узла
Синтаксис:
oXMLDOMText=oXMLDOMText.splitText(parameter)
Метод substringData
Извлекает подстроки или части строк из полной строки
Первый параметр этого метода имеет тип данных long integer (длинное целое), задавая количество символов от начала строки до той позиции, в которой должно начаться извлечение
Значение нуль говорит о том, что копирование должно начинаться с самого начала данных
Второй параметр также является значением типа long integer, задающим количество символов, которые должны быть извлечены в итоговую строку
Синтаксис:
strValue=oXMLDOMCharacterData.substringData(x,y)
Пример использования метода substringData
Пример:
<script language="vbscript"> Dim xmlDoc
Dim comment
Dim xStr
Set xmlDoc = CreateObject("microsoft.xmldom")
xmlDoc.async = False xmlDoc.load("candidate.xml")
Set comment = xmlDoc.createComment("Aptech Ltd.!") xStr = comment.subStringData(0,6) msgbox xStr
</script>
Объект XMLDOMDocumentType
Содержит информацию обо всех примитивах и нотациях в объявлении типа документа файла XML
Каждый объект DOM Document включает свойство ‘doctype’, которое идентифицирует объект XMLDOMDocumentType
Свойства объекта предназначены только для чтения
DTD не может быть добавлено в DOMDocument
Свойства entities и name
Свойство entities: Содержит список примитивов, внешних и внутренних, которые объявлены в декларации типа документа
Синтаксис:
oXMLDOMNamedNodeMap=oXMLDOMDocumentType.entities
Свойство name: Содержит имя типа документа
Синтаксис:
sValue=oXMLDOMDocuemntType.name
Свойство nodeTypeString
Возвращает строковую версию типа узла
Синтаксис:
strValue=oXMLDOMNode.nodeTypeString
nodeType |
nodeType |
NODE_ATTRIBUTE |
NODE_ELEMENT |
NODE_CDATA_SECTION |
NODE_ENTITY |
NODE_COMMENT |
NODE_ENTITY_REFERENCE |
NODE_DOCUMENT |
NODE_NOTATION |
NODE_DOCUMENT_FRAGMENT |
NODE_PROCESSING_INSTRUCTION |
NODE_DOCUMENT_TYPE |
NODE_TEXT |
Пример использования свойства nodeTypeString
Пример:
<script language="vbscript">
Dim xmlDoc
Dim cNode
Set xmlDoc = CreateObject("microsoft.xmldom") xmlDoc.async = False xmlDoc.load("candidate.xml")
Set cNode =xmlDoc.documentElement.childNodes
.item(0)
MsgBox cNode.nodeTypeString </script>
Выведенная панель сообщений msgbox
Метод replaceChild
Узел |
Потомки узла node |
node |
Childnode1 |
|
Childnode2 |
|
Childnode3 |
|
Childnode4 |
replaceChild(Childnode5, Childnode4)
Потомки узла node
Childnode1
Childnode2
Childnode3
Childnode5
Дочерние узлы после выполнения метода замены