Вход/Регистрация
Технология XSLT
вернуться

Валиков Алексей Н.

Шрифт:

В отношении переменных важно понимать, что это не более чем объекты, доступ к которым можно получить по имени.

□ Библиотека функций, состоящая из множества функций, которые могут быть выполнены процессором. В XPath определяется базовая библиотека, функции которой должны быть реализованы в процессоре, однако эта библиотека может быть расширена. Например, XSLT определяет несколько дополнительных функций, которые также должны поддерживаться всеми XSLT-процессорами. Более того, в преобразованиях можно использовать и собственные функции расширения. Таким образом, библиотека функций контекста состоит из всех функций, доступных при вычислении выражения.

□ Множество объявлений пространств имен. Это множество связывает префиксы пространств имен с уникальными идентификаторами ресурсов (URI), которые им соответствуют.

Пути выборки

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

Синтаксис путей выборки во многом похож на синтаксис путей в файловых системах — сказывается то обстоятельство, что иерархическая структура данных в XML-документах очень близка к древовидной структуре каталогов. В качестве примера сравним дерево каталогов (рис. 6.1) с таким же деревом, записанным в виде XML-документа (листинг 6.1).

Рис. 6.1. Древовидная структура каталогов

Листинг 6.1 XML-документ

<Java>

 <Doc>

<ClassGenerator/>

<SchemaProcessor/>

<XMLParser>

<images/>

</XMLParser>

 </Doc>

 <Lib>

<Servlets>

<classes/>

<doc>

<images/>

</doc>

<lib/>

<src/>

</Servlets>

 </Lib>

</Java>

В этой иерархии каталогов путь "

/
" соответствует корневому каталогу, путь "
/Java/Lib/Servlets/src
" — каталогу
src
. Путь из каталога
Java
в каталог
XMLParser
имеет вид "
Doc/XMLParser
", а путь из каталога
Lib
в каталог
images
— "
Servlets/doc/images
".

Перемещаться в системе каталогов можно не только вглубь, но также на верхние уровни при помощи пути "

..
", который осуществляет переход в родительский каталог. К примеру, для того, чтобы перейти из каталога "
/Java/Lib/Servlets/doc/images
" в каталог "
/Java/Doc/XMLParser/images
", можно воспользоваться путем "
../../../../Doc/XMLParser/images
".

Пути файловой системы, приведенные выше, в точности совпадают с путями выборки, которые мы бы использовали для обращения к соответствующим частям ХМL-документа. Путь выборки "

/
" содержит корневой узел, путь выборки "
/java/Lib/Servlets/src
" — элемент
src
, принадлежащий элементу
Servlets
, который принадлежит элементу
Lib
, который принадлежит элементу
Java
, находящемуся в корне элемента. Путь выборки "
Doc/XMLParser
" выбирает элементы
XMLParser
, находящиеся в элементах
Doc
, принадлежащих контекстному узлу.

В XPath существует два вида путей выборки — относительные и абсолютные пути. Абсолютный путь (например, "

/Java/Doc/ClassGenerator
") начинается ведущей косой чертой ("
/
") и отсчитывается от корневого узла документа, в то время как относительный путь (например, "
Doc/XMLParser
") отсчитывается от контекстного узла.

И абсолютный, и относительный пути выборки состоят из нескольких шагов выборки, разделенных косой чертой ("

/
"). Вычисление пути выборки производится последовательным выполнением составляющих его шагов. В случае абсолютного пути выборки, первый шаг выполняется относительно корневого узла дерева, в случае относительного пути — относительно контекстного узла контекста.

Пример

В файловой системе выполнить путь вида

Lib/Servlets/classes
означает:

□ из текущего каталога перейти в подкаталог

Lib
;

□ затем перейти в подкаталог

Servlets
;

□ и наконец — в подкаталог

classes
.

Для того чтобы выполнить такой же путь выборки в XML-документе, нужно

сделать следующее:

□ выполнить первый шаг, "

Lib
" — выбрать все дочерние элементы контекстного узла, имеющие имя "
Lib
";

  • Читать дальше
  • 1
  • ...
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: