在 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 中按“名称”选择的主要内容,如果未能解决你的问题,请参考以下文章

Mysql 从不同的表中按名称选择

在 HTMX 中按名称引用输入值

如何在数据框中按名称删除列

如何使用 LINQ 在 XML 中按名称获取元素

python 用于从CSV文件中按名称选择列(假设第一行包含标题)的小实用程序没有歧义(来自`csvkit`的`csvcut`具有

在 Power BI 中按类别选择前三个价格点