Xpath_выражение - это способ записи указания на место в дереве документа. Это средство указания не конкретный узел (или узлы) в дереве документа.
Виды Xpath_выражений (Оси выборки):
- / - корневой элемент
- // - поиск элемента на любой глубине
- * - любой вложенный элемент
- @code - атрибут элемента
- self - я сам (сам элемент) или .
- child - все дочерние узлы
- parent - родитель элемента или ..
- attribute - дочерний узел элемента в виде атрибута
- descendant - нисходящие, т.е. все узлы, которые находятся по DOM структуре ниже меня
- descendant-or-self - я сам и мои нисходяшии
- ancestor - все восходищие узлы, т.е. все узлы, которые находятся по DOM структуре выше меня до корня
- ancestor-or-self - все восходищие узлы и я сам
- following - все следующие узлы за мной на обработку, вместе с узлами нижесходящими
- following-sibling - все соседние узлы, находящиеся со мной на одном уровне вложенности
- precending - все узлы прешедствующие меня и их вложенные узлы
- precending-sibling - все узлы прешедствующие меня
Функции Xpath:
- node() - функция, возвращающая текущий контекст обработки - текущий узел
- comment() - функция, возвращающая кментарии
- last() - функция возвращает true, тогда, когда этот элемент последний в очереде
- position() - функция возвращает номер узла
- count(/pricelist/books) - функция возвращает количество книжек, при этом отсчет идет с единици - число узлов
- local-name() - локальное имя без пространства
- namespace-uri() - имя в пространстве имен
- name() - возвращает имя узла (имя тега)
- boolean(какой-то_узел) - функция возвращает false, если этот узел пустой, инече возвращает true
- number(какой-то_узел) - преобразовывает содержимое в число, если преобразовать нельзя вернет NAN
- sum(набор числовых узлов) - выводит сумму этих узлов
- floor() - округление до нижнего целого
- ceiling() - округление до верхнего целого
- round() - правильное округление (школьное)
- string() - Преобразует в строку
- concat(string1, string2, string*) - объединяет строки находящиеся внутри функции
- starts-with(string1, string2) - если строка string1 начинается со строки string2, то функция возвращает true
- containcs(string1, string2) - если строка string1 содержит строку string2, то функция возвращает true
- substring-before(string1, string2) - вырезать строку string1 до строки string2
- substring-after(string1, string2) - вырезать строку string1 после строки string2
- substring(string1, number1, number*) - вырезать строку string1 с нужной позиции number1 нужное число символов
- string-length(string?) - длинна строки
- normalize-space(string?) - убрать хвостовые и начальные пробелы
- translate(string1, string2, string3) - в строке string1 заменяются символы string2 на символы string3