如何使用 jsoup 通过 id 查找子 html 元素?

How to find a child html element by id with jsoup?

我正在用 Jsoup 解析一个站点的 html 代码。我需要找到一些具有特定 id 的 html 元素,但它们的父树使我的任务复杂化。所以我想知道是否可以搜索特定的 html 元素而不必先搜索其所有父元素。

例如我正在做下一个:

Elements el=elements.select(".scroller.context-inplay").select(".zone.grid-1-1").select(".grid-1").select(".module-placeholder");

我想知道是否有一种简单的方法可以获取与我通过此代码通过其 id 搜索得到的相同元素

html 元素的 ID 在页面中应该是唯一的。不幸的是,您在野外发现的一些 html 打破了这一要求。但是,如果您的 html 来源遵循标准,您可以简单地使用 # css 运算符来 select 有问题的元素:

 Element el = doc.select("#someID").first();

或者您可以直接使用 getElmentById Jsoup 方法:

Element el = doc.getElmentById("someID");

此外,如果您决定按照您在问题中建议的 class 名称,很容易将所有 select 组合成一个 select 或:

Elements els = elements.select(".scroller.context-inplay .zone.grid-1-1 .grid-1 .module-placeholder");

CSSselector中的space表示select或space的任何子select或右边必须是child 左边的东西。