Синтаксис Xpath, чтобы вы могли легко решать все виды проблем и наслаждаться истинной мощью Xpath!
int position()
возвращает позицию текущего узла в контексте.
int last()
возвращает последнюю позицию узла контекста.
int first()
возвращает первую позицию узла контекста.
string concat(string, string, string*)
объединяет несколько строк.
boolean contains(string, string)
определяет, содержит ли первая строка вторую.
int count(node-set)
подсчитывает количество узлов в заданном наборе узлов.
double/long sum(node-set)
функция суммы возвращает сумму для каждого узла в аргументе node-set результата преобразования строковых значений узла в число.
boolean starts-with(string, string)
определяет, начинается ли первая строка со второй.
int string-length(string?)
возвращает длину строки, если дана строка, иначе преобразует текущий узел в строку и возвращает длину.
string substring(string, number, number?)
Первый параметр указывает строку, второй — начальную позицию (индексы xpath начинаются с 1), а третий — длину, которую нужно усечь. Здесь мы должны обратить внимание на синтаксис xpath, это не конечная позиция.
substring("12345", 1.5, 2.6)
возвращает «234».
substring("12345", 2, 3)
возвращает «234».
string substring-ex(string, number, number)
Первый параметр указывает строку, второй — начальную позицию (используются индексы java, начинающиеся с 0), а третий — конечную позицию (поддерживаются отрицательные числа). Это расширенные функции JsoupXpath, удобные для разработчиков, привыкших к java.
string substring-after(string, string)
усекает часть после второй строки в первой строке.
string substring-before(string, string)
усекает часть до позиции последнего вхождения второй строки в первую строку.
Вышеупомянутые функции — это просто стандартные функции в Xpath 1.0. Разработчики также могут быстро и легко добавлять пользовательские функции, просто нужно реализовать интерфейс org.seimicrawler.xpath.core.Function.java и вызвать Scanner.registerFunction (Class <? Extends Function> func), когда ваша система инициализируется. Нет необходимости изменять парадигму синтаксиса, поскольку JsoupXpath может распознавать и загружать во время выполнения. Вы можете отправить запрос на вытягивание в основной репозиторий о функциях в стандартном синтаксисе, которые ещё не реализованы JsoupXpath.
allText()
извлекает весь текст под узлом, вместо использования рекурсивного текста, такого как // div / h3 // text ().
html()
получает внутренний html всех узлов.
outerHtml()
получает весь html всех узлов, включая сам узел.
num()
извлекает все числа в собственном тексте узла. Если вы знаете, что в собственном тексте узла есть только одно число (текст, содержащийся в дочерних узлах), например, количество прочтений, количество комментариев и цена, вы можете напрямую извлечь его. Если есть несколько чисел, будет извлечено первое совпадающее последовательное число.
text()
извлекает собственный текст узла.
node()
извлекает все узлы.
AxisName: 'ancestor' // Select from the ancestors of the node in the current context
| 'ancestor-or-self' // Select from the ancestors of the node and the node itself in the current context
| 'attribute' // Operations for extracting node attributes
| 'child' // Select from the child nodes of the node in the current context. This is the default axis of xpath. For example, /div/li is the shorthand of /div/child::li
| 'descendant' // Select from the descendants of the node in the current context
| 'descendant-or-self' // Select from the descendants of the node and the node itself in the current context
| 'following' // Select from all nodes behind the node in the current context
| 'following-sibling' //
``` | Оператор | Значение |
| --- | --- |
| *Select from all sibling nodes behind the node in the current context* | Выбрать из всех родственных узлов за узлом в текущем контексте |
| parent | Выбрать из родительского узла текущего контекста |
| preceding | Выбрать из всех узлов перед узлом в текущем контексте |
| preceding-sibling | Выбрать из всех родственных узлов перед узлом в текущем контексте |
| self | Выбрать в текущем контексте |
| following-sibling-one | Выбрать из следующего родственного узла узла в контексте (расширение JsoupXpath) |
| preceding-sibling-one | Выбрать предыдущий родственный узел узла в контексте (расширение JsoupXpath) |
| sibling | Все родственные узлы (расширение JsoupXpath, находится в разработке) |
### Operator
| Оператор | Значение |
|-----|-----|
| MINUS | - |
| PLUS | + |
| DOT | . |
| MUL | * |
| DIVISION | `div` |
| MODULO | `mod` |
| DOTDOT | .. |
| AT | @ |
| COMMA | , |
| PIPE | | |
| LESS | < |
| MORE_ | > |
| LE | <= |
| GE | >= |
| START_WITH | ^= |
| END_WITH | $= |
| CONTAIN_WITH | *= |
| REGEXP_WITH | ~= |
| REGEXP_NOT_WITH | !~ |
## Applied items ##
В настоящее время JsoupXpath широко используется в проектах или организациях, таких как SeimiCrawler. Если у вас также есть проект, использующий JsoupXpath и вы хотите появиться в этом списке, вы можете связаться со мной через следующие контактные данные, формат почты может быть таким:
* Название проекта или организации: XX
* URL проекта или организации: http://xxx.xxx.cc
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )