Различия
Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
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 | ||
+ | * / | ||
+ | * | Объединяет результат. Т. е., в рамках одного пути можно написать несколько путей разбора через знак |, и в результат такого выражения войдёт всё, что будет найдено любым из этих путей |