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

 

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

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

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


Один из случаев, когда свойству дг.шзг лучше присвоить значение їп.н:. — загрузка больших документов. Это позволяет приложению продолжить работу, пока документ загружается. Фактически при этом загрузка выполняется отдельным потоком. Применяя асинхронную обязательно проверьте значение свойства перед

обращением к документу. Возможные значения этого свойства перечислены в табл. 5-2. Два метода загрузки XML-документа описаны в табл. 5-3. 92

Чаоъ І Применение XML е злектронкей ком меримы

Табл. 5-2. Возможные - свойства readyState.

Значение Состояние Описание

: LOADING Происходит загрузка документа; анализ сше

не начался.

' LOADED Считывание документа закончено; начат

анализ.

INTER- Анализ документа частично завершен; часть

ACTIVE дерева доступна.

4 COMPLETED Документ загружен (удачно иди нет),

Табл. 5-3. Методы загрузки XML-документа в объект DOM.

Метод

Описание

1<ни)(укі.ііі!иа::і< ресурса)

IoadXMЦхтІ-строка)

Загружает документ, находящийся по адресу. заданному указателем ресурса. Если указатель некорректен или не указывает на XML-доку-мент, свойству присваивается

значение null и ноздрйшяетек сообщение об ошибке.

Загружает XML-документ, представленный в виде строки. В качестве аргумента может выступать правильный или действительный Если при анализе документа ошибки,

присваивается значение null и возвращается сообщение об ошибке.

Вот пример кода, загружающего XML-строку в объект DOM: Qbi Documenі IoadxiU "<fac/. Vi !"ifUxi= "2000-01-241 їфміьми

"ЛуЧШЕ: КН14Г, петому что I KX + " нельзя аьлить кафе.</fас. 1J:

После загрузки объекта надо проверить свойство enorO.xk объекта objDnatmanpaisijError. Если анализ закончился нормально, оно имеет значение 0:

if (ob] Dgaumeit. pa-зе;'!'0г. ei і orCfl'J« = 0) {

friert ("Оіііибкл; " + odjDari.irm-rit. pa 'S?F г го г rfcssor + ГЛАВА 5 Работа с XML «з приложений

93

в строке " + dbiD.ocutT'urit. pauset' • or. line V

Свойства объекта parseError (он доступен только для чтения) перечислены втай.ч 5-4.

Табл. 5-4. Свойства объекта parseError,

Свойство Описание

Десятичный код ошибки.

Указатель ресурса XML-файла, при анализе которого произошла піни6га. Описание ошибки.

Строка, в которой произошла ошибка. Номер строки, в которой произошла ошибка. Имейте в виду: нумерация ведется от начала локумечіта. однако если документ содержит определение типа (DTD), нумерация начинается со строки, следующей за закрывающим тэгом DTD, а не с первой строки документа.

Номер символа, вызвавшего ошибку, отсчитываемый от начала стромі.

filepos Номер символа, вызвавшего ошибку, отсчитываемый от начала файла.

Работа с документом

Убедившись, что документ загружен, с ним можно начать работать. Это можно сделать по-разному. Самое простое — начать с корневого узла; доступ к нему обеспечивает свойство docurneiitE'enieiu. Слелую-ший фрагмент кода добавляет к строке result свойства do-cuinentEk-/nent. nodeNawt и а'огічнеіііЕІеінепиех/:

¦"esi.ilт (- ' ch і Doc JtTient. Ciiirset г гDr. errorCijut1 +¦ obiDociiineri".. n^rscF - гог сггогСосе -f

'es: і t і-= "oh jйосиr^en I. ікси ¦ sn!.EleriaaL. nedcNaw: Hr ob.] Dec і, ins a- . floCir-a^Ele^erit "BaeNafflft + и';

I fiSUl t +- O'J,0CCU 'C" . UCCU-ertElC-Un: і :'X.t т г,Ii,(;¦:ситої ' сссIJKiei Ejefei ! ext + "'.г alflrf (resul"):

errorCoile uri

reason

srcTexl

line

linepos 94

Част.) і Ярвжйеше ХШ, в зяектроаной хзшлврцй«

Свойства nrsdeNami и text есть у всех элементных узлов. Объект оЬЦЬнлипсп представляет корневой узел документа, свойство Jocn memEknieni которого обеспечивает доступ к хранящемуся в нем элементу. Поскольку этот элемент используется очень часто, упростим код, создав для него специальную переменную:

var rootElern = cb Do' ,;«'!'.. der,Listr: ІЛет.ег

Атрибуты элемента хранятся в объекте XML DOMf kmcn в виде именованного набора. По сути набор attributes является ным массивом, элементы которого индексированы по строковому ключу. Например, чтобы получить значение атрибута verified, применим метод

ifcsu .I += " RDO L. Eleni. a.tt' tem(1 ve r:J і ее ). nqdsValus

+ rootElem. a' I riouT6S.gfatNiimeclItem(-"ve-1 f ied").nuaeValuu + "\п":

Итак, доступ к свойствам не проблема. А как с другими элементами документа, спросите вы? Это чуть сложнее — сейчас я опишу неспособов прямого доступа к элементам,

Доступ к элементам документа

Сначала загрузим документ посложнее. Воспользуемся документом с текстом анекдота из главы 4.

<?xml vc'sicP'" "1,0"? enaou'i'іц= 'windows-12hl"?'-<joke бар виноград тоз^". ">

<scene number="1">

Пришел гусь з бар. Подходит к Уг>Е;!-у и чег.гш: "У вас есть виноград?" Бармен отвечает: "Это бар, здесь нот винограда". </scene>

<?cene number="2">

На следующий день гусь снова в бар. Опять

Подходи- к бармену и говорит: "У вае ес~ь виноград?"

Бармен отвечает: "Я уже вчера сказал тебе, чтя винограда

здесь нет. Ecrni ты еще раз и спросишь

про виноград то я приколочу твои перепончатые ноги
Предыдущая << 1 .. 34 35 36 37 38 39 < 40 > 41 42 43 44 45 46 .. 157 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100