- •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
Базовые объекты XML DOM
Базовые объекты XML DOM: эти объекты используются для поддержки пространств имён, типов данных, схем XML, операций XSL, асинхронной загрузки и для сохранения документов
Объекты DOM: Эти объекты используются для представления реализаций интерфейсов XML DOM
интерфейсов XML DOM и
объекты DOM
Объект |
Представляет |
DOMDocument |
XMLDOMAttribute |
XMLDOMNode |
Секция XMLDOMCDATA |
XMLDOMNodeList |
XMLDOMDocumentType |
XMLDOMNamedNodeMap |
XMLDOMElement |
XMLDOMParseError |
XMLDOMEntity |
XMLHttpRequest |
XMLDOMProcessingInstru |
|
ction |
Объект DOMDocument
Представляет самый верхний уровень исходного кода XML
Включает методы и свойства, используемые для получения или создания всех других объектов XML
Создаёт только один объект: document
Некоторые свойства объекта DOMDocument:
async
attributes
baseName
childNodes
documentElement
Некоторые методы объекта DOMDocument:
createNode
appendChild
Свойство async
Показывает, должен ли документ XML загружаться асинхронно или синхронно
|
Управление |
async=true |
|
Вызванный |
|
|
возвращается |
|
|
документ |
|
|
|
|
Идёт загрузка |
Код VB продолжает выполнение без |
|
|
ожидания окончания загрузки |
|
|
Управление не |
async=false |
|
Вызванный |
|
|
возвращается |
|
|
документ |
|
|
|
|
Идёт загрузка |
Код VB ожидает окончания загрузки |
Свойство Attribute
Свойство предназначено только для чтения
Возвращает объект ‘XMLDOMNamedNodeMap’ для тех узлов, которые могут возвращать атрибуты
XMLDOMNamedNodeMap является интерфейсом XML, предназначенным специально для работы с атрибутами
Пример:
<script language="vbscript"> Dim xmlDoc
Dim oNodeMap
Set xmlDoc = CreateObject("microsoft.xmldom") xmlDoc.load("candidate.xml")
Set oNodeMap = xmlDoc.documentElement.attributes MsgBox oNodeMap.length
</script>
Свойство baseName
Свойство предназначено только для чтения
Всегда возвращает не пустую строку
Пример:
<script language="vbscript"> Dim xmlDoc
Dim MyStr
Set xmlDoc = CreateObject("microsoft.xmldom") xmlDoc.load("candidate.xml")
MyStr = xmldoc.documentElement.childNodes.item(0).baseName
MsgBox MyStr
</script>
Свойство childNodes
Свойство только для чтения
Пример:
<script language="vbscript"> Dim xmlDoc
Dim root Dim oList
Dim Item
Set xmlDoc
=CreateObject("microsoft.xmldom")
xmlDoc.load("candidate.xml") Set root = xmldoc.
Set oList = root.childNodes
For Each Item in oList document.write(Item.xml+"<br>")
Next </script>
Свойство documentElement
Это корневой элемент документа
Это свойство предназначено для чтения/записи
Возвращает объект ‘XMLDOMElement’, который
представляет корень дерева документа XML
Пример:
<script language="vbscript"> Dim root
Dim xmlDoc
Set xmlDoc = CreateObject("microsoft.xmldom") xmlDoc.async = False xmlDoc.load("candidate.xml")
Set root = xmlDoc.documentElement
For i = 0 To (root.childNodes.length -1) document.write(root.childNodes.item(i).childNodes.item(0)
.text + "<br>")
Next
</script>
методов объекта DOMdocument
<html>
<body>
<script language="vbs"> Dim xmlDoc
Dim root Dim newNode
Set xmlDoc = CreateObject("microsoft.xmldom") xmlDoc.async = False xmlDoc.load("candidate.xml")
Set root = xmlDoc.documentElement MsgBox root.xml
Set newNode = xmlDoc.createNode (1, "SampleNode", "") root.appendChild(newNode)
MsgBox root.xml </script>
</body>
</html>
Метод createNode
Создаёт узел, используя заданный тип, имя и пространство имён
Синтаксис:
objNode=oDocument.createNode(type,name,namespaceURI)
Параметр type: однозначно идентифицирует тип узла
Параметр name: строка, содержащая значение для свойства ‘nodeName’ нового узла
namespaceURI: строка, определяющая пространство имён URI
Узел создаётся в контексте указанного пространства имён
Если пространство имён не задано, то узел создаётся в
пространстве имён документа