русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Выполнение запросов к XML_документу с помощью XPath_выражений


Дата добавления: 2015-07-09; просмотров: 720; Нарушение авторских прав


 

XPath – это просто язык, с помощью которого можно обращаться к элементам, атрибутам и тексту внутри XML_документа. XPath_выражение может обратить_ ся к XML_элементу по его положению в иерархии документа или выбрать эле_ мент по значению некоторого атрибута (или просто по его присутствию). Подроб_ ное обсуждение языка XPath далеко выходит за рамки темы этой главы, тем не менее подраздел 21.4.1 представляет собой краткое руководство по языку XPath, в котором описываются, например, наиболее общие XPath_выражения.

 

Консорциумом W3C был выработан предварительный стандарт на API для выбор_ ки узлов в DOM_дереве документа с помощью XPath_выражения. Firefox и родст_ венные броузеры реализуют этот прикладной интерфейс в виде метода evaluate() объекта Document (как для HTML_, так и для XML_документов). Кроме того, бро_ узеры на базе Mozilla реализуют метод Document.createExpression(), который ком_ пилирует XPath_выражения в промежуточное представление, благодаря чему повышается их эффективность при многократном использовании.

 

В IE вычисление XPath_выражений выполняется с помощью методов select_ SingleNode() и selectNodes() XML_объектов (но не HTML_объектов) Document и Ele_ ment. Далее в этом разделе вы найдете пример, в котором используются оба при_ кладных интерфейса: и W3C, и IE.

 

Чтобы обеспечить поддержку XPath_выражений и в других броузерах, обдумай_ те возможность использования свободно распространяемого проекта AJAXSLT (http://goog'ajaxslt.sourceforge.net).


 

532 Глава 21. JavaScript и XML

Примеры использования XPath_выражений

 

Если вы понимаете структуру DOM_дерева документа, то без труда разберетесь с простыми XPath_выражениями на примере. Тем не менее чтобы понимать эти примеры, вы должны знать, что XPath_выражение вычисляется относительно некоторого контекстного узла документа. Простейшие XPath_выражения про_ сто ссылаются на узлы_потомки контекстного узла:



 

contact // Набор всех тегов <contact>, вложенных в контекстный узел contact[1] // Первый тег <contact>, вложенный в контекстный узел contact[last()] // Последний потомок <contact> контекстного узла contact[last()_1] // Предпоследний потомок <contact> контекстного узла

 

Обратите внимание: индексация элементов массивов в языке XPath начинается с 1, а не с 0, как в JavaScript_массивах.

 

Слово «path» (путь) в названии «XPath» отражает тот факт, что этот язык интер_ претирует уровни в иерархии XML_элементов как каталоги в файловой системе и для отделения уровней иерархии использует символ «/». Например:

 

contact/email // Все потомки <email> потомка <contact> контекстного узла /contacts // Потомок <contacts> корневого (ведущий слэш) элемента документа contact[1]/email // Потомок <email> первого потомка <contact> contact/email[2] // Второй потомок <email> любого потомка <contact> контекста

 

Обратите внимание: выражение contact/email[2] возвращает множество элемен_ тов <email>, которые являются вторыми узлами <email> любого узла <contact>, вложенного в контекстный узел. Это не то же самое, что contact[2]/email или

(contact/email)[2].

 

Точка (.) в XPath_выражениях ссылается на контекстный элемент, а двойной слэш (//) предписывает игнорировать уровни иерархии и ссылается на любой узел_потомок, а не непосредственно на дочерний элемент. Например:

.//email // Все потомки <email> контекстного узла

//email // Все теги <email> документа (обратите внимание на ведущий слэш)

 

XPath_выражения могут ссылаться не только на XML_элементы, но и на их ат_ рибуты. Для идентификации имени атрибута в качестве приставки использует_ ся символ @:

@id // Значение атрибута id контекстного узла

contact/@name // Значения атрибутов name потомков <contact>

 

Существует возможность отобрать множество элементов, возвращаемых XPath_ выражением, по значению XML_атрибута. Например:

 

contact[@personal="true"] // Все теги <contact> с атрибутом personal="true"

 

Для извлечения текстового содержимого XML_элементов используется метод text():

 

contact/email/text() // Текстовые узлы внутри тегов <email> //text() // Все текстовые узлы в документе

 

Язык XPath различает пространства имен, благодаря чему существует возмож_ ность включать префиксы пространств имен в выражения:


 

//xsl:template // Отберет все элементы <xsl:template>


 

21.4. Выполнение запросов к XML*документу с помощью XPath*выражений
   

 

Разумеется, при вычислении XPath_выражения, использующего пространства имен, вы должны обеспечить отображение префиксов пространств имен на соот_ ветствующие им URL_адреса.

 

Эти примеры – всего лишь краткий обзор наиболее общих образцов применения XPath. Язык XPath имеет и другие синтаксические элементы и особенности, ко_ торые здесь не описаны. Как один из примеров – функция count(), которая воз_ вращает количество узлов в получившемся множестве, а не само множество:

 

count(//email) // Число элементов <email> в документе

 



<== предыдущая лекция | следующая лекция ==>
Преобразование XML_документа с помощью XSLT | Выполнение XPath_выражений


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.64 сек.