- •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
Метод selectNodes
Возвращает список найденных (совпавших с образцом) узлов в объект XMLDOMNodeList
Пример:
<html>
<body>
<script language="vbscript">
Set xmlDoc = CreateObject("microsoft.xmldom") xmlDoc.async = False xmlDoc.load("candidate.xml")
Set oNList = xmlDoc.documentElement.selectNodes("PERSON/NAME") MsgBox oNList.length
</script>
</body>
</html>
Объект XMLDOMNodeList
Поддерживает итерацию в дополнение к индексированному доступу
Коллекция список узлов работает "в прямом эфире", так как все изменения, добавления и удаления немедленно отражаются в этой коллекции
|
Свойство |
|
Показывает количество экземпляров в коллекции. |
|
Length |
|
Свойство предназначено только для чтения. |
|
|
|
|
|
|
|
|
|
Метод Item |
Обеспечивает произвольный доступ к отдельным узлам в |
|
|
|
коллекции. |
|
|
|
|
|
|
Метод |
Возвращает следующий узел в коллекции. |
|
|
nextNode |
|
|
|
|
|
|
|
Метод Reset |
Реинициализирует (сбрасывает) итератор. |
|
|
|
|
|
Свойство length
Представляет количество экземпляров в коллекции
Это свойство предназначено только для чтения
Пример:
<html>
<body>
<script language="vbscript"> Dim xmlDoc
Dim objNList
Set xmlDoc = CreateObject("microsoft.xmldom") xmlDoc.load("candidate.xml")
Set objNList = xmlDoc.getElementsByTagName("PERSON") For i=0 To (objNList.length -1)
MsgBox (objNList.item(i).text)
Next </script>
</body>
</html>
Вывод результата работы Примера
Метод nextNode
Возвращает следующий узел в коллекции
Возвращает значение NULL, если следующий узел отсутствует
Изначально итератор устанавливается в ‘0’, поэтому первый вызов ‘nextNode’ возвращает первый узел в списке
Пример:
<script language="vbscript"> Dim xmlDoc
Dim objNList
Dim objNode
Set xmlDoc = CreateObject("microsoft.xmldom") xmlDoc.load("candidate.xml")
Set objNList = xmlDoc.getElementsByTagName("PERSON") For i=0 To (objNList.length -1)
Set objNode = objNList.nextNode MsgBox objNode.text
Next </script>
Объект
XMLDOMNamedNodeMap
Ещё одна коллекция объектов в модели DOMВозможен доступ по индексу
Используется для итерации по атрибутам для заданного элемента
Любое изменение в узле немедленно отображается в коллекции, например, удаление или добавление узлов
Свойства XMLDOMNamedNodeMap
Length |
Обозначает количество элементов в коллекции. Только чтение. |
|
|
Item |
Обеспечивает произвольный доступ к отдельным узлам в коллекции. Только |
|
чтение. |
Методы объекта XMLDOMNamedNodeMap
Метод getNamedItem Method: Возвращает объект XMLDOMNode для заданного атрибута
Синтаксис:
varXMLDOMNode=varXMLDOMNode.getNamedITEM(Aname)
Метод removeNamedItem: Возвращает узел, удалённый из коллекции
Синтаксис:
varXMLDOMNode = varXMLDOMNamedNodeMap.removeNamedItem(Aname)
Объект XMLDOMParseError
Возвращает информацию о последней синтаксической ошибке
Информация включает номер ошибки, номер строки, позицию символа и текстовое описание
Свойства |
Описание |
|
|
line |
Определяет номер строки, которая содержит ошибку. |
|
Только для чтения. |
|
|
linepos |
Содержит позицию символа в строке, где встретилась |
|
ошибка. Только чтение. |
Свойство line
Определяет номер строки, которая содержит ошибку
Пример:
<script language="vbscript"> Dim xmlDoc
Set xmlDoc = CreateObject("microsoft.xmldom") xmlDoc.async = False xmlDoc.load("candidate1.xml")
If xmlDoc.parseError.errorcode <> 0 Then
MsgBox ("A parse error occurred on line " & Вывод xmlDoc.parseError.line)
Else
MsgBox xmlDoc.documentElement. End If
</script>
Свойство Linepos
Содержит позицию символа в строке, где возникла ошибка
Это свойство предназначено только для чтения
Пример:
<script language="vbscript">
Dim xmlDoc
Set xmlDoc = CreateObject("microsoft.xmlDOM")
xmlDoc.async = False
xmlDoc.load("candidate1.xml")
If xmlDoc.parseError.errorcode <> 0 Then
MsgBox ("A parse error occurred on line " & xmlDoc.parseError.line & " at position " & xmlDoc.parseError.linepos)
Else |
MsgBox xmlDoc.documentElement.xml |
End If
</script>