【问题标题】:Multiclass element selection clarification [duplicate]多类元素选择说明[重复]
【发布时间】:2011-09-27 01:59:08
【问题描述】:

假设有几个多类 div,如以下 HTML 所示:

<div class="class_one class_two class_three classfour classfive classsix">

<div class="class_one class_two class_three classfour classfive">

<div class="class_one class_two class_three classfour classsix">

是否有一个 Jsoup 选择表达式可以选择所有 3 个?

为了澄清,认为“最小公分母”会选择所有 3 个,我尝试了以下操作:

div[class=class_one class_two class_three classfour] 

但它选择了none

另一方面,使用完整的多选语法有效,但它只能选择上述之一,例如:

div[class=class_one class_two class_three classfour classfive classsix]

有没有办法选择所有 3 个,使用 single Jsoup 选择语句?

【问题讨论】:

  • 发新帖之前不应该先回复我的answer to your previous recent question吗?如果您像以前一样忽略它,为什么要回答这个问题?你的sscce在哪里?
  • @Hovercraft Full Of Eels 感谢您的回复和提问。您对上一个最近的问题的回答帮助我在我的代码中找到了一个错误。现在我试图了解 Jsoup 在这方面是如何工作的,以便我可以相应地更新上一个问题(或删除它)。如果您注意到,上面的问题与上一个问题完全不同。事实上,它几乎是相反的。
  • 他的回答没有得到任何反馈,您也没有编辑问题以提供有关具体问题的更多背景信息。对我来说,乍一看,这两个问题都归结为同一个问题,实际上应该将以上内容编辑到您上一个最近的问题中。
  • @BalusC 上一个问题是对的,但这个问题与上下文或具体问题无关。这确实是一个关于理解 Jsoup 功能的问题,由于某种原因没有记录在案。我当然可以想出许多 SSCCE 来发现它是如何根据经验工作的,但是如果 Jsoup 的行为方式与它的设计设计不符,我永远不会知道这一点。真的,我要问的是这个特定的 Jsoup 多类选择是“或”还是“与”操作。
  • 好的,但是请就您最近的上一个问题对 Hovercraft 的回答提供反馈。

标签: java html-parsing jsoup


【解决方案1】:

这不是 Jsoup 特有的,而是 CSS 特有的。 [attribute=name] 选择器进行精确匹配。甚至订购也很重要。您想在此处使用 .classname 选择器。以下应该有效:

Elements divs = document.select("div.class_one.class_two.class_three.classfour");
// ...

请注意,类名的顺序在这里并不重要。此选择器选择所有具有所有给定类名的 &lt;div&gt; 元素。

另见:

【讨论】:

  • OMG 你刚刚向我透露了一个我到现在为止的误解:我一直认为 [class=name].classname 在 Jsoup 中是 100% 等价的。现在我发现它们至少在完全匹配方面略有不同。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-15
  • 2020-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-16
相关资源
最近更新 更多