Java Advanced XML Path Language 1.0 (XPath 1.0). 2 СПбГУ ИТМО Georgiy KorneevJava Advanced / XPath 1.0 Содержание 1.Введение 2.Пути 3.Выражения 4.Функции.

Презентация:



Advertisements
Похожие презентации
Java Advanced XML Transformations 1.0 (XSLT 1.0).
Advertisements

XML- технологии Лекция 3 XPath- адресация. Что такое XPath? XPath - это синтаксис для адресации частей XML- документа XPath использует пути для адресации.
XML eXtensible Markup Language 1.Пространства имён (Namespaces) 2.Язык навигации внутри XML-документа (XPath)
XPath Набор синтаксических правил для адресации элементов XML-документа.
XPath выступает в роли подъязыка преобразований XSLT и XPointer. Выражение XPath используется для манипуляции строками, в числовых выражениях, а также.
XML eXtensible Markup Language 1.Язык навигации внутри XML-документа (XPath) 2.Пространства имён (Namespaces) 3.Язык трансформаций (XSLT)
ТИПЫ ДАННЫХ. СТАНДАРТНЫЕ ФУНКЦИИ.. ТИПОМ ДАННЫХ, или величин, называется совокупность их возможных операций, выполняемых над ними, т. е. тип является.
Тема 1. Введение 1.
Технология Идентификации Ресурсов X-Pointer. Предназначение X-Pointer – это язык, описывающий местонахождение тех или иных ресурсов. Выражения языка X-Pointer.
XML eXtensible Markup Language 1.Определение типа документов (DTD) 2.Язык навигации внутри XML-документа (XPath)
Переменная l. Определение Переменная - именованное место в памяти, в котором можно хранить некоторое значение.
Урок 6 Turbo Pascal Язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля (1623–1662) и разработан.
Урок 3 Turbo Pascal Язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля (1623–1662) и разработан.
Арифметические выражения. Выражение - это формальное правило для вычисления некоторого значения. В зависимости от типа значения выражения можно разделить.
Язык XPointer Помогает адресовать и обнаруживать информацию в рамках другого документа XML Презентацию подготовила Курина Ксения, гр.950б.
1 Программирование на языке Паскаль Тема 1. Введение.
1 Программирование на языке Паскаль Тема 1. Введение Кулебякин В.В.
turbo.exe основной файл среды Любой язык обладает алфавитом, синтаксисом и семантикой. В алфавит входит набор символов, использующихся в языке с помощью.
Тип, имя и значение переменной.. Переменные. В объектно-ориентированных языках программирования, и в частности в языке Visual Basic, переменные играют.
Языки описания информации Лекция 4. Кафедра «ОСУ» Весенний семестр 2010/2011 уч. года XPath.
Транксрипт:

Java Advanced XML Path Language 1.0 (XPath 1.0)

2 СПбГУ ИТМО Georgiy KorneevJava Advanced / XPath 1.0 Содержание 1.Введение 2.Пути 3.Выражения 4.Функции 5.Заключение

Введение Часть 1

4Georgiy KorneevJava Advanced / XPath 1.0 XPath Язык выбора узлов XML-документов XPath рассматривает XML-документ в виде дерева Встраиваемый язык XSLT XPointer

5Georgiy KorneevJava Advanced / XPath 1.0 Контекст Предоставляется внешними средствами Текущий узел (current node) Набор переменных (variable bindings) Библиотека функций (function library) Набор префиксов пространств имен (set of namespace declarations)

6Georgiy KorneevJava Advanced / XPath 1.0 Типы данных node-set – набор узлов boolean – логический number – число с плавающей точкой string – строка (unicode)

7Georgiy KorneevJava Advanced / XPath 1.0 Основные конструкции Location path – пути Выбор набора узлов Expressions – выражения Вычисления над наборами узлов Functions – функции Произвольные функции

Location paths Часть 2

9Georgiy KorneevJava Advanced / XPath 1.0 Location Path Путь состоит из последовательности шагов Типы путей Абсолютный Относительный Абсолютный – вычисляется относительно корня документа (/ | //) step ((/ | //) step)* | / Относительный – вычисляется относительно текущего узла step ((/ | //) step)*

10Georgiy KorneevJava Advanced / XPath 1.0 Правила работы 1. Проинициализировать множество текущих узлов (МТУ) текущим узлом (для относительного пути) либо корнем (для абсолютного пути) 2. Для каждого узла из МТУ отложить один шаг и положить результат в множество следующих узлов (МСУ) 3. МТУ := МСУ 4. Если путь не кончился, перейти к шагу 2 5. Выдать МТУ в качестве результата

11Georgiy KorneevJava Advanced / XPath 1.0 Location step Основные части Axis (ось) – определяет какие узлы будут рассматриваться с точки зрения текущего узла Node test (проверка узла) – типы или имена узлов Predicates (предикаты) – условия на узлы (не обязательно) Синтаксис axis :: node-test ([ predicate ])* Пример child::p[position() = 1]

12Georgiy KorneevJava Advanced / XPath 1.0 Типы осей (1)

13Georgiy KorneevJava Advanced / XPath 1.0 Типы осей (2) attribute – ось атрибутов namespace – ось префиксов (не используется)

14Georgiy KorneevJava Advanced / XPath 1.0 Node tests Каждая ось имеет основной тип узла attribute – атрибут namespace – пространство имен Остальные – элемент Синтаксис node-name * ( text() | node() | processing-instruction() | comment()) processing-instruction( имя )

15Georgiy KorneevJava Advanced / XPath 1.0 Примеры child::p – дети, имеющие имя p ancestors::* – все предки attribute::href – атрибут href attribute::* – все атрибуты descendants::text() – все текстовые узлы

16Georgiy KorneevJava Advanced / XPath 1.0 Сокращенный синтаксис Ось по умолчанию – – префикс атрибута [n] – предикат, выбирающий n-й элемент. – текущий узел.. – родитель //step – потомки узла – сокращение для self::node()/descendant-or- self::node()/child::p/attribute::warning

17Georgiy KorneevJava Advanced / XPath 1.0 Predicates Предикат – произвольное условие на текущий узел Узел берется, если предикат выполняется Может быть несколько предикатов Примеры = help.html] = help.html][5] = help.html]

Выражения Часть 3

19Georgiy KorneevJava Advanced / XPath 1.0 Основные выражения $var – ссылка на переменную (expr) – выражение в скобках literal – строка -10 – число id(arg1, arg2, …) – вызов функции

20Georgiy KorneevJava Advanced / XPath 1.0 Выбор узлов | – объединение путей a | img /, // – конструирование путей a//img Фильтры Основное выражение Фильтр + предикаты

21Georgiy KorneevJava Advanced / XPath 1.0 Логические выражения Операции or – логическое или and – логическое и =, != – сравнение на равенство (неравенство), = – сравнения Наборы узлов Пустойfalse Не пустойtrue

22Georgiy KorneevJava Advanced / XPath 1.0 Сравнения При сравнении учитывается тип значений Строки – лексикографически Числа – по величине При сравнении двух наборов узлов выражение истинно, если найдется по элементу в первом множестве и втором множестве, связанные отношением Значение считается набором узлов из одного узла

23Georgiy KorneevJava Advanced / XPath 1.0 Численные выражения Операции +, - – сложение и вычитание *, div, mod – умножение, деление, взятие остатка - – унарный минус Основные выражения

Стандартные функции Часть 4

25Georgiy KorneevJava Advanced / XPath 1.0 Над множествами узлов (1) Местоположение position() – номер текущего узла в наборе last() – номер последнего узла в наборе count(node-set) – количество узлов

26Georgiy KorneevJava Advanced / XPath 1.0 Над множествами узлов (2) Имена name(node-set?) – имя текущего / первого в наборе узла local-name(node-set?) – локальное имя узла namespace-uri(node-set?) – имя пространства имен Выбор node-set id(object) – выбор элементов по идентификатору

27Georgiy KorneevJava Advanced / XPath 1.0 Функции над строками (1) string(object) – приведение к строке concat(str1, str2, …) – конкатенация строк starts-with(s1, s2) – s1 начинается с s2 contains(s1, s2) – s1 содержит s2 string-length(string?) – длина строки normalize-space(string?) – нормализация пробелов в строке

28Georgiy KorneevJava Advanced / XPath 1.0 Функции над строками (2) Подстроки substring-before(s1, s2) – часть s1 до первого вхождения s2 substring-after(s1, s2) – часть s1 после первого вхождения s2 substring(s, off, len?) – подстрока s, начиная с off, длиной len символов translate(s, from, to) – для каждого символа из s: если он содержится во from, то заменить его на соответствующий символ из to

29Georgiy KorneevJava Advanced / XPath 1.0 Логические функции boolean(object) – преобразование к логическому типу not(boolean) – логическое отрицание true() – истина false() – ложь lang(name) – проверка языка узла (атрибут xml:lang)

30Georgiy KorneevJava Advanced / XPath 1.0 Числовые функции number(object?) – преобразование к числу sum(node-set) – сумма наборов узлов round(number) – округление к ближайшему floor(number) – округление вниз ceiling(number) – округление вверх

Заключение Часть 5

32Georgiy KorneevJava Advanced / XPath 1.0 Ссылки XML Path Language (XPath) version 1.0 // Перевод спецификации на русский // Валиков А. Технология XSLT

33 СПбГУ ИТМО Georgiy KorneevJava Advanced / XPath 1.0 Вопросы