【问题标题】:Jsoup : getting elements that not descend from a given typeJsoup:获取不是从给定类型下降的元素
【发布时间】:2013-06-18 17:50:09
【问题描述】:

让我们考虑一下 sn-p :

<div>
    <img id="img1" src="my_image2.jpg">
    <a href="#>
        <img id="img2" src="my_image2.jpg">
    </a>
</div>

要获取不在链接中的所有图像(在本例中为 id=img1 的 img),以下选择器 :not(a) img 似乎可以工作。

现在让我们考虑其他 sn-p :

<div>
    <img id="img1" src="my_image2.jpg">
    <a href="#>
        <span class="my_class">
            <img id="img2" src="my_image2.jpg">
        </span>
    </a>
</div>

在这种情况下,上面提到的选择器不起作用,并且选择了两个图像。 如何修改我的选择器以使其工作?我想避免遍历所选元素的父级。

提前致谢

科杰

谢谢

【问题讨论】:

  • 我的回答解决了您的问题吗?如果是,请检查它作为答案,如果不是,请提供您自己的答案并检查那个。

标签: jsoup


【解决方案1】:

对于这个特定的示例,这将起作用

doc.select("div>img:not(a>div>img)");

如果在 a 标签内有一个 div 而不是 span,则 not 部分是必不可少的。 在这里没有区别。此解决方案考虑到您想要什么,而不是您不想要什么。

【讨论】:

  • 非常感谢。为了更通用,我们甚至可以使用doc.select("img:not(a img)");。你怎么看? try.jsoup.org/~QMRj2b2EQe4S6gMSwl457Sh5g-Q
  • 你必须对你想要的图像做出一些决定。我的意思是,好的,您不希望它们出现在“a”标签中。是别的吗?你必须列出你希望他们在哪里,而不是在哪里不去。它更简单、更通用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多