Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
java / лекции / лекция 6.ppt
Скачиваний:
116
Добавлен:
17.04.2018
Размер:
204 Кб
Скачать
☆

XPath

XPath: //BBB[@*]

Выбираются элементы BBB, имеющие хоть какой-нибудь атрибут

<AAA>

<BBB id="b1"/> <BBB id="b2"/> <BBB name="bbb">

</AAA>

Xpath: //BBB[not(@*)]

Выбираются элементы BBB, не имеющие ни одного атрибута

<AAA>

<BBB id="b1"/> <BBB id="b2"/>

<BBB name="bbb"> <BBB/>

</AAA>

XPath

XPath: //BBB[@id='b1']

Выбираются элементы BBB, имеющие атрибут id со значением b1

<AAA>

<BBB id="b1"/> <BBB id="b2"/>

<BBB name="bbb"> </AAA>

Xpath: //BBB@id

Выбираются атрибуты id элемента BBB

<AAA>

<BBB id="b1"/>

<BBB id="b2"/> <CCC id="bbb">

</AAA>

XPath в Java

Создание объекта XPath

XPathFactory xfactory XPathFactory.newInstance();

XPath path = xfactory.newXPath();

Обработка выражений Xpath

String username = path.evaluate("/configuration/database/username", doc);

XPath в Java

Получение набора узлов с помощью XPath

NodeList nodes = path.evaluate("/recipe/engridients", doc, XpathConstants.NODESET);

Получение узла с помощью Xpath:

Node node = path.evaluate("/recipe/instructions", doc,

XpathConstants.NODE);

XPath в Java

Получение числа с помощью Xpath:

int amount = ((Number)path.evaluate("/recipe@cooktime", doc, XpathConstants.NUMBER)).intValue;

Поиск может производиться с произвольного узла

Node node = path.evaluate("/recipe/instructions", doc, XpathConstants.NODE);

NodeList steps = path.evaluate("/step", node,XpathConstants.NODESET);

Числовые Функции

round — округляет до ближайшего целого

ceiling - округляет до ближайшего целого, которое больше данного.

floor — округляет до ближайшего целого, которое меньше данного.

count - Возвращает количество узлов.

number - Преобразует аргумент в число

sum - Возвращает сумму списка чисел.

<recipe name="хлеб" preptime="5" cooktime="180"> <title>Простой хлеб</title>

<ingredient amount="3" unit="стакан">Мука</ingredient> <ingredient amount="0.25" unit="грамм">Дрожжи</ingredient>

<ingredient amount="1.5" unit="стакан">Тёплая вода</ingredient>

<ingredient amount="1" unit="чайная ложка">Соль</ingredient> <instructions>

<step>Смешать все ингредиенты и тщательно замесить.</step>

<step>Закрыть тканью и оставить на один час в тёплом помещении.</step>

<step>Замесить ещё раз, положить на противень и поставить в духовку.</step>

</instructions>

</recipe>

Выражения:

round(recipe/ingredient[3]/@amount) — вернёт значение 2 ceiling(recipe/ingredient[3]/@amount) — вернёт значение 2 floor(recipe/ingredient[3]/@amount) — вернёт значение 1 count(recipe/ingredient) — вернет значение 4 sum(recipe/amount/@amount) — вернет значение 5.75

Строковые функции

string - Преобразует аргумент в строк

string-length - Возвращает длину строки.

substring - Возвращает подстроку.

substring-after - Возвращает остаток строки после второго аргумента.

substring-before - Возвращает часть строки перед вторым аргументом.

contains - Возвращает 'истину', если первая строка содержит вторую.

starts-with - Возвращает 'истину', если первая строка начинается второй.

concat - Возвращает конкатенацию двух строк.

normalize-space - Удаляет лишние пробелы в строке.

translate - Заменяет символы в строке.

<recipe name="хлеб" preptime="5" cooktime="180"> <title>Простой хлеб</title>

<ingredient amount="3" unit="стакан">Мука</ingredient> <ingredient amount="0.25" unit="грамм">Дрожжи</ingredient> <ingredient amount="1.5" unit="стакан">Тёплая вода</ingredient> <ingredient amount="1" unit="чайная ложка">Соль</ingredient> <instructions>

<step>Смешать все ингредиенты и тщательно замесить.</step>

<step>Закрыть тканью и оставить на один час в тёплом помещении.</step>

<step>Замесить ещё раз, положить на противень и поставить в духовку.</step>

</instructions>

</recipe>

Выражения:

string(recipe/ingredient[1]/@amount) - вернет значение '3' string-length(recipe/ingredient[1]) — вернет значение 4 substring(recipe/instructions/step[1], 1, 7) — вернет 'Смешать'

substring-after(recipe/instructions/step[1], 'оставить') — вернет ' на один час в тёплом помещении'

contains(recipe/ingredient[3], 'вода') — вернет 'истина'

concat(recipe/ingredient[1]/@amount, ' ', recipe/ingredient[1] /@unit, ' ', recipe/ingredeint[1]) — вернёт '3 стакан Мука'

translate(recipe/ingredient[3], 'ё', 'е') — вернет 'Теплая вода'

Булевские функции

boolean - Преобразует аргумент к булевому типу.

false - Вовращает 'ложь'.

true - Возвращает 'истину'.

not - Возвращает отрицание.

boolean('recipe/ingredient[1]/@amount) — вернет «истину».

not(false()) - вернет «истину» number(false()) - вернет значение 0

Соседние файлы в папке лекции