【问题标题】:Jsoup: "Which span does this element belong to?"Jsoup:“这个元素属于哪个跨度?”
【发布时间】:2011-06-01 19:18:20
【问题描述】:

假设我找到了一个元素:

Element link = div.select("a:not([class])").first();

我现在想知道这个特定的元素是否包含在<span class="uniqspan">中——不一定是直接后代。

有没有办法在 Jsoup 中做到这一点?

更新:我刚刚找到了很棒的Element.parent()。我要检查一下这是否可以作为一个开始...

【问题讨论】:

    标签: java html-parsing jsoup


    【解决方案1】:

    Element link 开始,这无法直接实现。我建议先收集span.uniqspan 中的所有链接,然后检查contains 是否是link

    例如

    Element link = div.select("a:not([class])").first();
    Elements linksInUniqspan = document.select("span.uniqspan a:not([class])");
    
    if (linksInUniqspan.contains(link)) {
        // Link is inside span.uniqspan.
    } else {
        // Link is not inside span.uniqspan.
    }
    

    【讨论】:

    • 这是一个很好的解决方案。你觉得if ((link.parent().tagName().equals("span")) && (link.parent().className().equals("uniqspan")))怎么样?
    • 你可以这样做。但这仅检查直接父级,并且在其上一级或其他情况下不起作用。您需要循环检查每个父级。
    猜你喜欢
    • 1970-01-01
    • 2021-10-08
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 2019-01-13
    • 1970-01-01
    • 2020-09-10
    • 2017-07-29
    相关资源
    最近更新 更多