Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / XML для пользователей
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

Лабораторная работа 5.1 Примение объектной модели DOM

Объектная модель XML DOM (Document Object Model), библиотека Microsoft XML 4 (MSXML4), Sapien PrimalScript, узлы документа XML

Задание:

Вам нужно написать программу, которая бы позволяла пользователям производить поиск в файле Phonebook.xml по фамилии сотрудника и возвращала бы для них информацию о его сотовых телефонах (только сотовых, не городских). Окно для приема данных от пользователя должно выглядеть так:

Окно для возврата данных - так:

Примечание 1

Создать такую программу проще всего на VBScript или JavaScript с использованием объектов из библиотеки MSXML. Рекомендуется установить с компакт-диска MSXML4 и воспользоваться прилагаемой к нему справкой. Для написания скрипта удобно использовать специализированный программный продукт PrimalScript, который также находится на компакт диске. Однако вы можете использовать любой язык программирования и набор DOM-совместимых программных объектов, который вам наиболее удобен.

Примечание 2

Для решения поставленной задачи проще всего было бы использовать выражения XPath, но, поскольку в этом курсе они не рассматриваются, можно использовать простой перебор всех элементов через цикл.

Решение:

Итоговый код скрипта на языке VBScript для вашей задачи может выглядеть так:

Dim sInput, sResult, oXmlDoc, oNodeList, oNode, oRecord, oChild

'Получаем от пользователя фамилию

sInput = InputBox("Введите фамилию", _

"Получение информации о телефоне")

'Создаем объект документа XML

Set oXmlDoc = CreateObject("Msxml2.DOMDocument.4.0")

'Загружаем к него файл с диска. При необходимости путь поменять

oXmlDoc.load ("C:\Lab4-1\PhoneBook.xml")

'Получаем список всех узлов типа LastName

Set oNodeList = oXmlDoc.getElementsByTagName("pbml:LastName")

'проходим циклом по каждому узлу

For Each oNode In oNodeList

'Проверяем на соответствие фамилии.

'На всякий случай приводим к единому регистру 

     If lcase(oNode.Text) = lcase(sInput) Then

'Получаем ссылку на родительский объект - Record

     Set oRecord = oNode.parentNode

'Проходим циклом по всем детям

         For Each oChild In oRecord.ChildNodes

'Проверяем тип узла...          

              If oChild.NodeName ="pbml:Phonenumber" Then

'... и значение элемента PhoneType

                   If oChild.Attributes.GetNamedItem("pbml:PhoneType").text = "M" Then

'если все правильно, добавляем номер телефона

'к тексту в переменной sResult

sResult = sResult & oNode.Text & vbTab & oChild.Text & vbCrLf              

                   End If

              End If

         Next

     End IF

Next

'проверка - нашли такую запись или нет

If sResult = "" Then

MsgBox "Запись не обнаружена!",, "Информация о сотовом телефоне"

Else

'Непосредственно вывод информации

MsgBox sResult,, "Информация о сотовом телефоне"

End if

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 
© 2004-2008, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru