Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Трэвис Б. -> "XML и SOAP: программирование для серверов BizTalk. Новейшие технологии" -> 41

XML и SOAP: программирование для серверов BizTalk. Новейшие технологии - Трэвис Б.

Трэвис Б. XML и SOAP: программирование для серверов BizTalk. Новейшие технологии — Русская Редакция, 2001. — 496 c.
ISBN5-750Z-0129-5
Скачать (прямая ссылка): xmlprogrammdlyaserverov2001.pdf
Предыдущая << 1 .. 35 36 37 38 39 40 < 41 > 42 43 44 45 46 47 .. 157 >> Следующая


гвоздями прямо к стойке Cup- ! "

</'scene>

<scene п^тЬег^'й'^

На третий день гусь опять 'И з. в бар, подошел к Работа с XML из приложений

бармену и спрашивает "У вас есть гвозди-?" "Нет, конечно", -

отвечает бармен. Гусь ухныльдался и спсшива.&т; "А виноград?" </scene>

</j ekes

Допустим, что этот документ успешно загружен. Как вы узнали выше, мы можем без труда обратиться к любому элементу и атрибуту любого элементного узла, но как найти элемент — скажем, элементы scene? Для этого мы используем свойство childNodes, а затем выберем из элемента scene нужную нам ипформашио:

Гаїті- г- гоотПєт вЬШМаш*- лтліи.1) text " + -^otEieir cTilCINodes. _ сіиП) LsxL * "Vi"

Свойство Нет во;npaiiiaeі дочерний узел. Помните, что номера элементе* набора childNodes начинаются с так что в предыдущем примере выводится текст не первой, а второй сцены — той, где бармен, как сказал бы юрист, угрожает нашему герою физической расправой.

Набор дочерних узлов доступен через интерфейс X^lLDOMNode-Lisi (табл. 5-5).

Табл. 5-5. Свойства и методы интерфейса XMLDOMNodeUst. Свойство/метод Описание

число узлов в списке. Длина списка изменяется при добавлении дочерних узлов или атрибутов. Возвращает узел с указанным номером; номера отсчитываются от 0.

узел, следующий за текущим, Возвращает итератор в исходное состояние (перед первым узлом в так что следующий вызов

метода вернет ссылку на первый узел.

Свойство length позволяет просмотреть узлы списка по очереди:

= 0; i <

Ї

resLip. t= roQtE_ei,' ct"ilaNodes:itei4(" + д + "< Lout: + rootE Jem. Bh і..IdNodiJS. iternf і). text +

length

Иет(индекс)

Node reset 96

Часть I Применение XML E зжетроэдей коммерции

Чтобы упростить код предыдущего примера, создадим специальную переменную для списка узлов:

var colScenes = rooiEjfir.ciilbJNodes

fo- (i = 0; i < caiS'jc-ri'j'S. Ifif U1: i++) {

result += 'соІЗсеау:.;.:. і.оітіС' + i + + ccisc3'4;$ i:ein('..'] .text +

}

Объект DOM .Moth-1. /.vi переменной colScenes содержит список всех прямых потомков object корневого элемента joke, что обеспечивает легкий доступ к элементам DOM.

А если нам нужна сцена, атрибут которой содержит конкретное значение? Вот один из способов решения этой задачи:

colScenes = госнЕіє'п. chiojMooeb (i = 0; i < i++)

{

if (colScenes.item(i).attributes.getNamedItem("number").nodeValue == "1") {

result + і +

+ colScenes ite;r( j.'i ^yV +

}

Это работает, но выглядит слишком топорно. Мы пойдем другим путем. В реализации Microsoft DOM есть два удобных метода: select-и позволяющие очень просто

обратиться к конкретному узлу (табл. 5-6).

Табл. 5-6. К элементу набору элементов можно обратиться с помощью методов selectNodes и selectSingleNode из реализации Microsoft DOM. Аргумент задает шаблон поиска в формате XPath.

Метод Описание

seka Notksf запрос Возвращает список узлов, удовлетворяющих

чаї a рос у. заданному в аргументе. Поиск хедетсп от текущего узла. Если запросу не удовлетворяет ни один узел или строка запроса содержит ошибку, возвращается пустой список. иЙіД 5 PsSiWg с XML из прі^кжнж

97

(продолжение)

teh-ciSmricNodct юнрпс) Во !»paniaei первый узел списка узлов,

v;j(-in;it'THops(ioni.u\ запросу, заданному в аргументе. Поиск ведется от тек\щс*т узла. Если запросу не удовлетворяет ии один узел, возвращается пчН

Строка-запрос в аргументе методов, перечисленных в этой таблицу, представляет собой шаблон XSL. Мы обсудим их в главе 6, а пока используем метод selecsNode; в качестве альтернативы обращению к списку

var

for (i = 0; i < иоіСсил^і it-iKvn: i++) {

result += "o^Scsrss,'.rax" + i + ").:олт: 1

+ СОЇ.ScC11PS l [ЄП( O , Гй/L +

На первый взгляд, главное преимущество метода іeieeiNode:, — ясность кода. Настоящие достоинства этого метода станут понятны, лишь когда вы начнете работать с вложенными элементами сложных документов. Например, чтобы извлечь список товаров из счета, достаточно применить такой шаблон:

Sf! ее* NcccsC Virvo Jy/ • Lews/item")

Чтобы решить эту задачу методом childNodes, понадобится немало кода — ведь придется просмотреть список узлов и выбрать нужные. Метод ',electSiiigU'Nodt позволяет сократить объем кода до предела:

result +=

В этом примере XSL-шаблон возвращает первую сцену, атрибут і*'\пі4тЬеі которой имеет значение 2.

Итак, вы познакомились с основными методами для работы с объектной моделью документа — попробуем применить их на практике.

Упражнение: работа с DOM средствами Visual Basic

DOM предоставляет интерфейс к XML-документу, позволяющий работать с содержанием документа. Созданный Microsoft Чаш І Применение XMl. в электронной коммерции

:?а~зр. реализующий спецификацию W3C DOV!, является СОМ-объектом, поэтому вы можете использовать его из любой среды, поддержи-ьаюшеп СОМ. В частности, с ним можно работать в программе на Microsoft Visual Basic (что мы и сделаем), в коде на JavaScript, вложенном в Web-страницу, в программе на C++ или в Java-приложении.
Предыдущая << 1 .. 35 36 37 38 39 40 < 41 > 42 43 44 45 46 47 .. 157 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100