簡體   English   中英

使用jsoup僅從同一類的某些div中提取文本

[英]Extract text from only some divs in the same class with jsoup

我想使用jsoup從網站的特定<div>中提取文本,但不確定如何。

問題是,我想從div獲得具有class="name"的文本。

但是,此類中可以有更多的<div> (並且我不想從中獲取文本)。

HTML文件中的內容如下所示:

.  
.
<div class="name">
Some text I don't want
<span class="a">Tree</span>
</div>
.  
.
<div class="name">Some text I do want</div>
.  
.

因此,唯一的區別是我要從中獲取文本的<div> <span>里面沒有<span> 但是我還沒有找到一種使用它作為鍵來提取jsoup中文本的方法。

可能嗎?

使用JSoup的選擇器語法 例如,選擇所有class =“ name”的div使用

Elements nameElements = doc.select("div.name");

請注意,您在上方“想要”和“不要”想要的文本位於相同的相對 HTML位置,實際上我不知道您為什么想要一個或另一個。 HTML和JSoup會看到相同的內容。

如果要避免元素包含span元素,則一種方法是遍歷上面獲得的元素,並通過選擇器測試它們是否具有span元素:

    Elements nameElements = doc.select("div.name");

    for (Element element : nameElements) {
        if (element.select("span").isEmpty()) {
            System.out.println("No span");
            System.out.println(element.text());
            System.out.println();
        } else {
            System.out.println("span");
            System.out.println(element.text());
            System.out.println();
        }
    }

您可以選擇所有帶有class =“ name”的div元素,然后循環遍歷它們。 檢查元素是否具有子元素-如果沒有,則這是您想要的div。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM