[英]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.