这是HTML结构:
Element link = doc.select("div.subtabs p").first();
这似乎不起作用。如何选择p
?
答案 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();