java - JSoup - 如何获取紧接在 <span class = *> 之前的 href(url/link)?

标签 java css-selectors html-parsing jsoup

鉴于以下情况:

<li class="med grey mkp2">
    <a href="http://www.amazon.com/gp/offer-listing/B004N627KS/ref=sr_1_1_olp?ie=UTF8&amp;qid=1357396214&amp;sr=8-1&amp;keywords=097855073358&amp;condition=new"><span class="price bld">$28.15</span> new <span class="grey">(14 offers)</span></a> </li>

我需要获取 href,这听起来很简单,对吧?但是,我可以找到要从中获取的正确列表项的唯一方法是获取 <span class="price bld"> ,所以我需要的 href 在它之前。它类似于 Extracting href from a class within other div/id classes with jsoup , 但反过来。

css 类“med grey mkp2”可以有很多列表项,但我只需要来自那些带有 class="price bld"的标注范围的内容。

我怎样才能做到这一点?

最佳答案

只能选择目标元素(<a>),不能选择子元素(<span>),否则只会返回<span>。元素。在这种特殊情况下,您可以使用 :has()选择器检查目标元素是否具有所需的子元素。

Elements elements = document.select("a:has(.price.bld)");

另见:

  • Jsoup selector cookbook

    :has(seletor): find elements that contain elements matching the selector; e.g. div:has(p)

关于java - JSoup - 如何获取紧接在 <span class = *> 之前的 href(url/link)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14367358/

相关文章:

java - Java 中形成匹配谓词集合的对象集合的最快方法是什么?

css - 我可以合并 :nth-child() or :nth-of-type() with an arbitrary selector?

css - 如何在 id 中格式化类类?

java - Apache MQ - JMS 消息选择器

java - Java子类的实现

css - 选择一个邻居的 child ……怎么办?

regex - Swift:解析 HTML 的最快方法

php - 简单的 html dom : how get a tag without certain attribute

python - 改进 python 代码片段

java - 将变量从 jBoolean 类型转换为 bool