我想使用jsoup从网站的特定<div>
中提取文本,但我不确定如何。
问题是,我想从div中获取一个class="name"
的文本。
但是,可以更多<div>
s这个类(我不想从那些文本中获取文本)。
在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>
。但我还没有找到一种方法来将其用作提取jsoup中文本的关键。
有可能吗?
答案 0 :(得分:1)
使用JSoup的selector syntax。例如,选择所有具有class =“name”的div使用
import { Directive, ElementRef, Renderer, HostListener } from '@angular/core';
@Directive({
selector: '[draggable]'
})
export class DragDirective {
constructor(private el: ElementRef, private renderer: Renderer) { }
@HostListener('move')
moveElement(xpos:number) {
this.renderer.setElementProperty(this.el.nativeElement, 'xpos', xpos);
}
}
请注意,您上面“执行”和“不执行”的文本位于相同的相对 HTML位置,实际上我不知道您为什么需要其中一个。 HTML和JSoup会看到它们相同。
如果你想避免包含span元素的元素,那么一种方法是迭代上面获得的元素,如果它们有span元素,则由选择器测试:
Elements nameElements = doc.select("div.name");
答案 1 :(得分:0)
您可以使用class =“name”选择所有div元素,然后循环遍历它们。检查一个元素是否包含子元素 - 如果没有,这就是你想要的div。