Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Расширенные X-Path выражения




Стандарт X-Path

 

Адресация к элементам XML документа — узлам, атрибутам и содержанию обеспечивается с помощью частного выражения стандарта X-Path 1.0 (http://www.w3.org/TR/xpath). Для определения содержимого узла/атрибута задается запрос X-Path следующего вида:

путь[выражение]:сортировка

Частное выражение путь может включать следующие элементы:

/ или /имя — корневой узел документа;

. — текущий узел;

.. — родитель текущего узла;

имя — потомок текущего узла с заданным именем;

* — любой потомок текущего узла;

/родитель/потомок — положение узла в иерархии XML документа;

//имя — порожденный узел на любом уровне иерархии;

@имя — атрибут текущего узла.

Дополнительное условие конкретизации [выражение] может включать следующие элементы:

индекс — порядковый номер записи;

или

attr1 опер_сравн 'val1' логич_опер …attrN опер_сравн 'valN', где

attr1...attrN – атрибуты(поля) и их значения val1...valN;

опер_сравн — одна из операций сравнения:

= (равно),!= (не равно), < (меньше), > (больше), <= (меньше или равно), >= (больше или равно);

логич_опер — одна из логических операций сравнения: and или or.

В качестве атрибутов также можно использовать функции:

text() - текстовое содержание XML узла;

last() - последний порядковый номер записи;

position() - текущий порядковый номер записи.

Примеры частных X-Path выражений:

/book — корневой узел (описание книги);

/book/title — заголовок книги;

//item[@id='1'] — первый пункт любого раздела книги;

chapter[@number='1']/title — заголовок первого раздела книги;

chapter[@number='2']/item[@id='1']/@src — источник первого пункта второго раздела книги;

chapter[title='Глава 1'] — раздел книги с заголовком 'Глава 1';

chapter[@number='$number'] – раздел книги с номером, заданным переменной $number;

chapter[3] — третий по порядку раздел книги;

chapter[last()]/title – заголовок последнего раздела книги.

Примеры частных X-Path выражений, возвращающих массив узлов:

chapter[@number > '1'] – список разделов книги с номером больше 1;

chapter/title:@text – список заголовков разделов, отсортированных по алфавиту;

chapter[1..3] – первые три раздела книги;

//item[text()=~'Perl'] – список всех пунктов книги, содержащих слово Perl.

 

Частный расширенный запрос X-Path (в реализации процессора ESOP) позволяет дополнительно указать источник данных для запроса и может иметь следующие элементы:

источник/запрос или запрос или функция

Строка источник имеет вид:

document('имяф') – источником данных является XML файл, где имяф — имя файла, включая локальный путь и расширение;

database('имяdb') – источником данных является база данных, где имяdb – имя базы данных;

$переменная – источником данных является объектная переменная;

sql('имяdb') – источником данных является SQL запрос к базе данных имяdb;

url('адрес') – источником данных является HTTP результат запроса адрес, возвращающий XML структуру (Web сервис).

Строка запрос имеет вид:

выражение — частный X-Path запрос для источника данных XML;

таблица[выражение]:сортировка/список_полей – запрос для источника данных базы данных;

sql_строка или sql_строка/@атрибут — команда SQL для доступа к источнику данных.

Выражения < и >, а также переменные и входные хеш элементы в тексте запросов интерполируются.

Строка функция имеет вид:

length(запрос) – число элементов, возвращаемых частным X-Path запросом;

val('выражение') — вычисляемое выражение Perl;

keys('%in') – массив входных хеш элементов.

Использование расширенных частных X-Path запросов в атрибутах select шаблонов XSLT, XSP сценариев и функциях библиотек ESOP позволяет эффективно интегрировать различные источники, формируя при этом требуемые XML структуры.

Примеры расширенных частных X-Path выражений:

document('book.xml')/book — корневой узел документа book.xml;

database('db')/user[1..10] – первые 10 записей таблицы user базы данных db;

database('db')/user[@family='Иванов'] — запись таблицы user базы данных db с полем family, содержащем фамилию Иванов;

$user/family — поле family объектной переменной $user;

sql('db')/select * from user – SQL запрос к таблице user базы данных db, также указаны параметры подключения;

length(//item) – число элементов item текущего XML узла.

ЛЕКЦИЯ 17. Современные технологии хранения и обработки данных (Продолжение)




Поделиться с друзьями:


Дата добавления: 2014-12-25; Просмотров: 429; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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