Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лек 016.doc
Скачиваний:
22
Добавлен:
07.02.2015
Размер:
79.36 Кб
Скачать

XmlParser.AppendChild(xmlParser.CreateComment("Текст комментария"))

'Создание корневого элемента

Set rootNode = xmlParser.appendChild(xmlParser.createElement("ROOT"))

'Создание первого вложенного элемента

Set subNode = rootNode.appendChild(xmlParser.createElement("SUB"))

subNode.text = "Текст первого вложенного элемента"

'Создание второго вложенного элемента

Set subNode = rootNode.appendChild(xmlParser.createElement("SUB"))

'Создание раздела CDATA

subNode.appendChild(xmlParser.createCDATASection("<<< >>> &&& Произвольные текстовые данные"))

'Создание ссылки на примитив

subNode.appendChild(xmlParser.createEntityReference("amp"))

'Создание текстового узла

subNode.appendChild(xmlParser.createTextNode("Текст второго вложенного элемента"))

'Создание третьего вложенного элемента с использованием пространства имён

Set subNode = rootNode.appendChild(xmlParser.createNode(1, "html:H1", "http://www.w3c.org/TR/REC-html40/"))

subNode.text = "Заголовок HTML"

'Создание четвёртого и пятого вложенных элементов с использованием фрагмента

Set Fragment = xmlParser.createDocumentFragment

Fragment.appendChild(xmlParser.createElement("SUB"))

Fragment.appendChild(xmlParser.createElement("SUB"))

rootNode.appendChild(Fragment)

xmlParser.save("C:\Test.xml")

Добавим новый товар в начало нашего существующего "каталога товаров":

Set xmlParser = CreateObject("Msxml2.DOMDocument")

xmlParser.async = False

xmlParser.load "C:\Sample.xml"

'Получаем корневой элемент

Set rootPRODUCTS = xmlParser.documentElement

'Получаем первый товар

Set firstPRODUCT = xmlParser.documentElement.childNodes(0)

'Вставляем новый товар перед первым

Set newPRODUCT = rootPRODUCTS.insertBefore(xmlParser.createElement("PRODUCT"), firstPRODUCT)

'Устанавливаем атрибут "import" для нового товара

Set newAttr = xmlParser.createAttribute("import")

newAttr.value = "yes"

newPRODUCT.setAttributeNode(newAttr)

'Добавляем наименование новому товару

Set newTITLE = newPRODUCT.appendChild(xmlParser.createElement("TITLE"))

newTITLE.text = "Product #0"

'Добавляем сорт новому товару

Set newSORT = newPRODUCT.appendChild(xmlParser.createElement("SORT"))

'Добавляем цвет сорту

Set newCOLOR = newSORT.appendChild(xmlParser.createElement("COLOR"))

newCOLOR.text = "navy"

'Добавляем цену сорту

Set newPRICE = newSORT.appendChild(xmlParser.createElement("PRICE"))

newPRICE.text = "$0.01"

'Сохраняем весь документ

xmlParser.save("C:\Sample.xml")

Добавим новый товар в начало нашего существующего "каталога товаров" с помощью копирования:

Set xmlParser = CreateObject("Msxml2.DOMDocument")

xmlParser.async = False

xmlParser.load "C:\Sample.xml"

'Получаем корневой элемент

Set rootPRODUCTS = xmlParser.documentElement

'Получаем первый товар

Set firstPRODUCT = xmlParser.documentElement.childNodes(0)

'Вставляем копию первого товара перед первым товаром

Set newPRODUCT = rootPRODUCTS.insertBefore(firstPRODUCT.cloneNode(True), firstPRODUCT)

'Устанавливаем атрибут "import" для нового товара

newPRODUCT.setAttribute "import", "yes"

'Сохраняем документ

xmlParser.save("C:\Test.xml")

Меняем местами, удаляем товары:

Set xmlParser = CreateObject("Msxml2.DOMDocument")

xmlParser.async = False

xmlParser.load "C:\Sample.xml"

'Получаем корневой элемент

Set rootPRODUCTS = xmlParser.documentElement

'Получаем копии первого и второго товаров

Set firstPRODUCT = rootPRODUCTS.childNodes(0).cloneNode(True)

Set secondPRODUCT = rootPRODUCTS.childNodes(1).cloneNode(True)

'Меняем местами первый и второй товары

rootPRODUCTS.replaceChild secondPRODUCT, rootPRODUCTS.childNodes(0)

rootPRODUCTS.replaceChild firstPRODUCT, rootPRODUCTS.childNodes(1)

'Удаляем последний товар

rootPRODUCTS.removeChild rootPRODUCTS.lastChild

'Сохраняем документ

xmlParser.save("C:\Test.xml")

Обработка поддеревьев стилевыми таблицами

Перечень методов:

Описание

transformNode(objStylesheet)

Назначает стилевую таблицу для текущего узла и возвращает строку - результат обработки. Текущим узлом может быть весь XML-документ.

transformNodeToObject(objStylesheet, objXMLDOMDocument)

То же, что и transformNode, но результат не возвращается, а помещается в objXMLDOMDocument.

Применяем существующую стилевую таблицу к каталогу товаров:

'Загружаем документ

Set xmlParser = CreateObject("Msxml2.DOMDocument")

xmlParser.async = False

xmlParser.load "C:\Sample.xml"

'Загружаем стилевую таблицу

Set objStylesheet = CreateObject("Msxml2.DOMDocument")

objStylesheet.async = False

objStylesheet.load "C:\Sample.xsl"

'Применяем стилевую таблицу к документу

WScript.Echo xmlParser.transformNode(objStylesheet)

Вывод товаров в обратном порядке с помощью XSL-сортировки:

'Загружаем документ

Set xmlParser = CreateObject("Msxml2.DOMDocument")

xmlParser.async = False

xmlParser.load "C:\Sample.xml"

'Загружаем стилевую таблицу

Set objStylesheet = CreateObject("Msxml2.DOMDocument")

objStylesheet.async = False

objStylesheet.loadXML _

"<?xml version='1.0' encoding='windows-1251'?>" & _

"<xsl:stylesheet xmlns:xsl='http://www.w3.org/TR/WD-xsl'>" & _

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]