Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| languages:xpath [2018/09/07 21:30] – создано mirocow | languages:xpath [2018/09/07 22:26] (текущий) – [Системные функции] mirocow | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== XPATH ====== | ====== XPATH ====== | ||
| + | ===== Оси ===== | ||
| + | Оси — это база языка XPath. Для некоторых осей существуют сокращённые обозначения. | ||
| + | |||
| + | * child:: — содержит множество элементов-потомков (элементов, | ||
| + | * descendant:: | ||
| + | * descendant-or-self:: | ||
| + | * ancestor:: — содержит множество элементов-предков. | ||
| + | * ancestor-or-self:: | ||
| + | * parent:: — содержит элемент-предок на один уровень назад. Это обращение можно заменить на .. | ||
| + | * self:: — содержит текущий элемент. Это обращение можно заменить на . | ||
| + | * following:: — содержит множество элементов, | ||
| + | * following-sibling:: | ||
| + | * preceding:: — содержит множество элементов, | ||
| + | * preceding-sibling:: | ||
| + | * attribute:: — содержит множество атрибутов текущего элемента. Это обращение можно заменить на символ @ | ||
| + | * space:: — содержит множество элементов, | ||
| + | |||
| + | ===== Функции над множествами узлов ===== | ||
| + | |||
| + | ^ |Функция| Описание^ | ||
| + | |node-set| node()| Возвращает сам узел. Вместо этой функции часто используют заменитель *, но, в отличие от звёздочки, | ||
| + | |string| text() Возвращает узел, если он текстовый| | ||
| + | |node-set| current()| Возвращает множество из одного элемента, | ||
| + | |number| position()| Возвращает позицию элемента в множестве элементов оси. Корректно работает только в цикле < | ||
| + | |number| last()| Возвращает номер последнего элемента в множестве элементов оси. Корректно работает только в цикле < | ||
| + | |number| count(node-set)| Возвращает количество элементов в node-set.| | ||
| + | |string| name(node-set? | ||
| + | |string| namespace-url(node-set? | ||
| + | |string| local-name(node-set? | ||
| + | |node-set| id(object)| Находит элемент с уникальным идентификатором| | ||
| + | |||
| + | |||
| + | ===== Строковые функции ===== | ||
| + | |||
| + | ^ |Функция| Описание^ | ||
| + | |string| string(object? | ||
| + | |string| concat(string, | ||
| + | |number| string-length(string? | ||
| + | |boolean| contains(string, | ||
| + | |string| substring(string, | ||
| + | |string| substring-before(string, | ||
| + | |string| substring-after(string, | ||
| + | |boolean| starts-with(string, | ||
| + | |boolean| ends-with(string, | ||
| + | |string| normalize-space(string? | ||
| + | |string| translate(string, | ||
| + | |||
| + | ===== Логические функции и операторы ===== | ||
| + | |||
| + | ^Символ, | ||
| + | |< | ||
| + | |< | ||
| + | |< | ||
| + | |< | ||
| + | |< | ||
| + | |< | ||
| + | |< | ||
| + | |||
| + | |||
| + | ^|Функция| Описание^ | ||
| + | |boolean| boolean(object)| Приводит объект к логическому типу| | ||
| + | |boolean| true()| Возвращает истину| | ||
| + | |boolean| false()| Возвращает ложь| | ||
| + | |boolean| not(boolean)| Отрицание, | ||
| + | |||
| + | ===== Числовые функции и операторы ===== | ||
| + | |||
| + | ^Символ, | ||
| + | |+| сложение| | ||
| + | |−| вычитание| | ||
| + | |*| умножение| | ||
| + | |div| обычное деление (не нацело!)| | ||
| + | |mod| остаток от деления| | ||
| + | |||
| + | |||
| + | ^ |Функция| Описание^ | ||
| + | |number| number(object? | ||
| + | |number| sum(node-set)| Вернёт сумму множества. Каждый тег множества будет преобразован в строку и из него получено число| | ||
| + | |number| floor(number)| Возвращает наибольшее целое число, не большее, | ||
| + | |number| ceiling(number)| Возвращает наименьшее целое число, не меньшее, | ||
| + | |number| round(number)| Округляет число по математическим правилам| | ||
| + | |||
| + | |||
| + | ===== Системные функции ===== | ||
| + | |||
| + | ^ |Функция| Описание^ | ||
| + | |node-set| document(object, | ||
| + | |string| format-number(number, | ||
| + | |string| generate-id(node-set? | ||
| + | |node-set| key(string, object)| Возвращает множество с указанным ключом (аналогично функции id для идентификаторов)| | ||
| + | |string| unparsed-entity-uri(string)| Возвращает непроанализированный URI. Если такового нет, возвращает пустую строку| | ||
| + | |boolean| element-available(string)| Проверяет, | ||
| + | |boolean| function-available(string)| Проверяет, | ||
| + | |object| system-property(string)| Параметры, | ||
| + | | |xsl:| version — возвращает версию XSLT процессора.| | ||
| + | | |xsl:| vendor — возвращает производителя XSLT процессора.| | ||
| + | | |xsl:| vendor-url — возвращает URL, идентифицирующий производителя. Если используется неизвестный параметр, | ||
| + | |boolean| lang(string)| Возвращает true, если у текущего тега имеется атрибут xml: lang, либо родитель тега имеет атрибут xml: lang и в нём указан совпадающий строке символ| | ||
| + | |||
| + | * * Обозначает любое имя или набор символов по указанной оси, например: | ||
| + | * $name Обращение к переменной. name — имя переменной или параметра | ||
| + | * [] Дополнительные условия выборки (или предикат шага адресации). Должен содержать логическое значение. Если содержит числовое, | ||
| + | * {} Если применяется внутри тега другого языка (например HTML), то XSLT-процессор рассматривает содержимое фигурных скобок как XPath | ||
| + | * / | ||
| + | * | Объединяет результат. Т. е., в рамках одного пути можно написать несколько путей разбора через знак |, и в результат такого выражения войдёт всё, что будет найдено любым из этих путей | ||