Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник_Палагута.doc
Скачиваний:
10
Добавлен:
13.11.2019
Размер:
6.6 Mб
Скачать

Об’єкт ixmldomNamedNodeMap – невпорядкована колекція вузлів, обраних за ім’ям

Властивість

Опис

length

Повертає кількість елементів у колекції

Метод

Опис

getNamedItem (name)

Повертає елемент колекції (вузол) з певним ім’ям

item (i)

Повертає елемент колекції (вузол) з індексом і

Об’єкт IXMLDOMNodeList

Властивість

Опис

length

Повертає кількість елементів у колекції

Метод

Опис

tem (i)

Повертає елемент колекції (вузол) з індексом і

nextNode ()

Повертає наступний вузол колекції

Розглянемо декілька прикладів сценаріїв, створених мовою JavaScript, які працюють з XML – документом Firms.xml (додаток С).

Приклад №1

<script>

var xmlDoc = new ActiveXObject ("Msxml2.DOMDocument");

xmlDoc.load("Firms.xml");

document.write(xmlDoc.documentElement.text);

</script>

Під час виконання даного фрагменту виконується оголошення змінної xmlDoc, якій привласнюється значення нового об’єкту Msxml2.DOMDocument, тобто змінна xmlDoc стає DOM – документом. До змінної xmlDoc застосовується метод load – відбувається зчитування інформації з файлу Firms.xml у пам’ять і побудування DOM – дерева документа. Далі в HTML документ виводяться значення всіх текстових вузлів документа.

Приклад №2

<script>

var xmlDoc = new ActiveXObject ("Msxml2.DOMDocument");

xmlDoc.load("Firms.xml");

document.write(xmlDoc.documentElement.lastChild.text);

</script>

Зчитується XML – документ у перемінну xmlDoc, далі у HTML - документ виводиться значення текстових вузлів, підпорядкованих останньому дочірньому вузлу кореневого елемента.

Результат: 83025, м.Донецьк, вул.Коцюбинського, 58 Валерій Іванович Бондаренко Олеся Юріївна Дмитрук 720 275 450 53

Приклад №3

<script>

var xmlDoc = new ActiveXObject ("Msxml2.DOMDocument");

xmlDoc.load("Firms.xml");

document.write(xmlDoc.getElementsByTagName("address").item(1).text);

</script>

На web-сторінку виводиться вміст текстового вузла елементу address, який є другим у колекції елементів address. Індексація екземплярів колекції починається з 0, тому виведено буде виведено адресу другої фірми.

Результат: 83007, м.Донецьк, бул.Шевченка, 31

Приклад №4

Можна створити сценарій, за допомогою якого можна ввести у вікно діалогу найменування підприємства, обрати з документа відомості про конкретне підприємство. Код документа, робота і результат виконання сценарію наведені на рис. 13.35.

Рисунок 13.3

Рисунок 13.4

Рисунок 13.5

З використанням мови JavaScript можна також створити HTML – документ, який буде вміщувати інформацію, що обирається з XML – документа Firms.xml. У вигляді таблиці на Web-сторінці виводиться: найменування кожної фірми (значення атрибуту title елемента firm), прибуток (значення елемента profit), кількість співробітників (значення елемента number_of_the_working), а також прибуток на одного працівника ( ).

Потрібно створити HTML – документ як на рис. 13.6.

Рисунок 13.6 - Код HTML – документа з вбудованим сценарієм на JavaScript

У рядках 5-6 виконується оголошення змінної xmlDoc, до змінної xmlDoc застосовується метод load – відбувається зчитування даних з XML - файлу Firms.xml у пам’ять і побудування DOM – дерева документа.

У рядках 7-8 виводиться шапка таблиці, далі починається цикл під час якого потрібно обробити усі дочірні вузли кореневого елемента – вузли firm. У циклі потрібно здійснити стільки ітерацій, скільки дочірніх вузлів childNodes є у кореневого елемента documentElement документа xmlDoc, це визначається за допомогою властивості length, яка повертає кількість елементів. У циклі (рядки 9-16) виводиться один рядок таблиці.

У рядку 11 запис

xmlDoc.getElementsByTagName("firm").item(i).attributes.item(1).nodeValue

означає, що до документа xmlDoc застосовується метод getElementsByTagName – здійснюється звернення до елементів з ім’ям firm власно до і-го елементу (item(i)), обирається атрибут з індексом 1 – атрибут title і в документ поміщається його значення nodeValue. Атрибут title другий атрибут елемента firm (перший – id), оскільки індексація починається з 0, то атрибут title має індекс 1.

У рядку 12 у чарунці таблиці за допомогою запису

xmlDoc.getElementsByTagName("profit").item(i).text

здійснюється застосування методу getElementsByTagName для вибору і-го (item(i)) елементу колекції елементів profit і виведення текстового вузла даного елемента. Аналогічним чином у рядку 13 виводиться значення елементів number_of_the_working, а далі виводиться результат ділення значень елементів profit на значення елементів number_of_the_working.

Результат розчинення HTML – документу у браузері ІЕ показано на рис. 13.7.

Рисунок 13.7 - HTML – документ з вбудованим сценарієм у вікні ІЕ

Контрольні питання

  1. Які функції виконують XML - аналізатори?

  2. Який механізм дії SAX – аналізаторів?

  3. Що таке об’єктна модель документа (DOM)?

  4. Як працюють DOM – аналізатора?

  5. Чим відрізняється DOM - дерево XML – документа від дерева документа XPath?

  6. Які властивості документа у DOM Вам відомі?

  7. Які методи роботи з документа Ви знаєте?

Практичні завдання

Варіант №1

Створити із використанням DOM сценарій вибору з XML – документа Banks.xml інформації про конкретний банк (найменування банку вводиться у вікні діалогу).

Варіант №2

Створити із використанням DOM сценарій вибору з XML – документа Trade.xml інформації про конкретне підприємство торгівлі (найменування підприємства вводиться у вікні діалогу).

Варіант №3

Створити із використанням DOM сценарій вибору з XML – документа Sales.xml інформації про товари, по яких план реалізації не виконано.