如何在JSOUP中选择此元素?

时间:2012-05-22 04:45:05

标签: java jsoup

这是HTML结构:

enter image description here

Element link = doc.select("div.subtabs p").first();

这似乎不起作用。如何选择p

6 个答案:

答案 0 :(得分:24)

带有class =“subtabs”的DIV实际上不是p元素的父级,而是p的兄弟。要检索p,您需要首先获得对id =“content”的父DIV的引用:

Element link = doc.select("div#content > p").first();

此外,您需要>符号表示您正在选择div#content的孩子。

  

父母> child:直接从父级下降的子元素,例如: div.content> p找到p个元素;和身体> *找到身体标签的直接孩子

如果您将来遇到JSOUP CSS选择器,请查看JSOUP Selector Syntax cookbook,其中有一些很好的示例和解释。

答案 1 :(得分:4)

div#content p。它不是.subtabs的孩子。

答案 2 :(得分:1)

您尝试提取的 p 标记不是 div 的子标记。这是一个兄弟姐妹。父div的ID为内容,您想要的 p 标记是其父级中的第一个 p 标记。所以请使用doc.select("div#content > p").first();

表示ID,> 表示RHS是LHS的孩子。因此,该陈述意味着获得第一个段落,其中div为div,其id为 content

答案 3 :(得分:1)

Chrome SelectorGadget非常有助于为jSoup构建CSS选择器,只需点击即可。在尝试定位特定字段时,它为我节省了数小时的开发时间。

答案 4 :(得分:0)

Element link = doc.select("div.subtabs + p") 它找到紧跟兄弟姐妹的元素

答案 5 :(得分:0)

尝试一下:

Element link = doc.select("div.subtabs > p").first();