jsoup获得css,Jsoup的CSS选择器代码(包括xpath代码)

可以获取对单个文本节点的对象引用。我想也许你在看着Jsoup的TextNode对象。

Element的顶级文本是TextNode Object的一个实例。例如,“一些文本1”和“一些文本3”都是“< div class ='info'>”下的TextNode对象,并且“Line 1:”是“< strong>”下的TextNode Object。

Element对象有一个textNodes()方法,它可以用来保存这些TextNode对象。

检查下面的代码:

String html = "" +

"

" +

"

" +

"Line 1: some text 1
" +

"some text 2
" +

"Line 3: some text 3
" +

"

" +

"" +

"";

Document document = JSoup.parse(html);

Element infoDiv = document.select("div.info").first();

List infoDivTextNodes = infoDiv.textNodes();

此代码找到的第一个< div>元素谁拥有与关键=“类”和值=“信息”的属性。然后直接在“< div class ='info'>”中获得对所有TextNode对象的引用。这份名单看起来像:

List[" some text 1", " some text 3"]

TextNode对象具有与之相关的,你可以利用一些甜蜜的数据和方法,并延伸Node给你更多的功能利用。

以下是使用class =“info”获取div内每个TextNode的对象引用的示例。

for(Iterator elementIt = document.select("div.info").iterator(); elementIt.hasNext();){

Element element = elementIt.next();

for (Iterator textIt = element.textNodes().iterator(); textIt.hasNext();) {

TextNode textNode = textIt.next();

//Do your magic with textNode now.

//You can even reference it's parent via the inherited Node Object's

//method .parent();

}

}

使用这种嵌套迭代器技术,您可以访问对象的所有文本节点,并与一些聪明的逻辑,你可以只是做Jsoup的结构中任何你想要的。

我已经实现了我以前创建的拼写检查方法的逻辑,它对大量元素,可能是很多列表或其他东西的非常大的html文档确实有一些性能点击。但是如果你的文件长度合理,你应该获得足够的性能。

以下是获取文档的每个TextNode的对象引用的示例。

Document document = Jsoup.parse(html);

for (Iterator elementIt = document.body().getAllElements().iterator(); elementIt.hasNext();) {

Element element = elementIt.next();

//Maybe some magic for each element..

for (Iterator textIt = element.textNodes().iterator(); textIt.hasNext();) {

TextNode textNode = textIt.next();

//Lots of magic here for each textNode..

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值