优秀的编程知识分享平台

网站首页 > 技术文章 正文

在 jsoup 中,可以使用选择器语法来查找元素

nanyue 2024-09-07 16:48:46 技术文章 9 ℃

在 jsoup 中,可以使用选择器语法来查找元素,类似于 CSS 或 jQuery 的语法。以下是一些常用的操作元素的方法:

- ?Element.select(String selector)?:在单个元素上使用选择器,返回匹配的元素集合。

- ?Elements.select(String selector)?:在文档中使用选择器,返回匹配的元素集合。

jsoup elements 对象支持类似于 CSS (或 jquery)的选择器语法。例如:

- ?tagname?:通过标签查找元素,比如:a。

- ?ns|tag?:通过标签在命名空间查找元素,比如:可以用 fb|name 语法来查找fb:name元素。

- ?#id?:通过 ID 查找元素,比如:#logo。

- ?.class?:通过 class 名称查找元素,比如:.masthead。

- ?(attribute)?:利用属性查找元素,比如:(href)。

- ?(^attr)?:利用属性名前缀来查找元素,比如:可以用(^data-)来查找带有 HTML5 Dataset 属性的元素。

- ?(attr=value)?:利用属性值来查找元素,比如:(width=500)。

- ?(attr^=value)?,?(attr$=value)?,?(attr*=value)?:利用匹配属性值开头、结尾或包含属性值来查找元素,比如:(href*=/path/)。

- ?(attr~=regex)?:利用属性值匹配正则表达式来查找元素,比如:img(src~=(?i).(png|jpe?g))。

- ?*?:这个符号将匹配所有元素。

- ?el#id?:元素+ID,比如:div#logo。

- ?el.class?:元素+class,比如:div.masthead。

- ?el(attr)?:元素+class,比如:a(href)。

- ?ancestor child?:查找某个元素下的子元素,比如:可以用.body p 查找在”body”元素下的所有 p 元素。

- ?parent > child?:查找某个父元素下的直接子元素,比如:可以用 div.content > p 查找 p 元素,也可以用 body > * 查找 body 标签下所有直接子元素。

- ?siblingA + siblingB?:查找在 A 元素之前的第一个同级元素 B,比如:div.head + div。

- ?siblingA ~ siblingX?:查找 A 元素之前的同级 X 元素,比如:h1 ~ p。

- ?el, el, el?:多个选择器组合,查找匹配任一选择器的唯一元素,例如:div.masthead, div.logo。

- ?:lt(n)?:查找哪些元素的同级索引值(它的位置在 DOM 树中是相对于它的父节点)小于 n,比如:td:lt(3)表示小于三列的元素。

- ?:gt(n)?:查找哪些元素的同级索引值大于 n,比如:div p:gt(2)表示哪些 div 中有包含2个以上的 p 元素。

最近发表
标签列表