在 JSoup 中按“名称”选择

Posted

技术标签:

【中文标题】在 JSoup 中按“名称”选择【英文标题】:Select by "name" in JSoup 【发布时间】:2011-11-27 03:39:16 【问题描述】:

我必须解析的网页 URL 中有多个 div,它们具有相同的类名但不同的名称且没有 id。

例如。

<div class="answer" style="display: block;" name="yyy" oldblock="block" jQuery1317140119108="11"> 

<div class="answer" style="display: block;" name="xxx" oldblock="block" jQuery1317140119108="11">

我想选择数据并仅从一个 div 中解析,即 (name="yyy")(div 内的内容是 &lt;href&gt; 链接,每个类都不同。

我在 Jsoup 网页中查找了selector syntax,但无法解决它。你能帮我解决这个问题吗,或者如果我遗漏了什么,请告诉我?

【问题讨论】:

【参考方案1】:

使用[attributename=attributevalue] 选择器。

Elements xxxDivs = document.select("div.answer[name=xxx]");
// ...

Elements yyyDivs = document.select("div.answer[name=yyy]");
// ...

【讨论】:

你之前的回答效果很好,只有在我输入正确的语法后,我才意识到还有另一个同名的 div,即有两个 div class="answer" style="display: block;" name="xxx" oldblock="block"....有什么方法可以区分他们两个吗? 寻找不同且更独特的属性或内容,以便您可以区分它们。或者,如果它的顺序是固定的,您也可以通过.first() 获得第一个,或者通过.get(1).last() 获得第二个或最后一个。

以上是关于在 JSoup 中按“名称”选择的主要内容,如果未能解决你的问题,请参考以下文章