首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Jsoup非递归提取文本

用Jsoup非递归提取文本
EN

Stack Overflow用户
提问于 2019-12-01 15:48:22
回答 2查看 99关注 0票数 4

这是我试图运行的代码:

代码语言:javascript
复制
String html = "<a href=\"/name/zola-1\">ZOLA <span class=\"tiny\">(1)</span></a>";

Document doc = Jsoup.parse(html); //connect  to the page
Element element = doc.getAllElements().first(); //recive the names elements

System.out.println(element.text()); //prints "ZOLA (1)"
System.out.println(element.ownText()); // prints nothing

我的目标是只提取"ZOLA",没有子节点的文本,但是ownText没有打印任何.我怎么发动汽车呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-01 16:56:54

问题是doc.getAllElements().first()返回

代码语言:javascript
复制
<html>
 <head></head>
 <body>
  <a href="/name/zola-1">ZOLA <span class="tiny">(1)</span></a>
 </body>
</html>

当你期待

代码语言:javascript
复制
<a href="/name/zola-1">ZOLA <span class="tiny">(1)</span></a>

下列各点应适用于你:

代码语言:javascript
复制
String html = "<a href=\"/name/zola-1\">ZOLA <span class=\"tiny\">(1)</span></a>";

Document doc = Jsoup.parse(html);
Elements links = doc.getElementsByTag("a");
System.out.println(links.get(0));
System.out.println(links.get(0).ownText());

输出:

代码语言:javascript
复制
<a href="/name/zola-1">ZOLA <span class="tiny">(1)</span></a>
ZOLA
票数 1
EN

Stack Overflow用户

发布于 2019-12-01 16:33:08

你可以用这个:

代码语言:javascript
复制
String html = "<a href=\"/name/zola-1\">ZOLA <span class=\"tiny\">(1)</span></a>";
Document doc = Jsoup.parse(html);
Element elementA =  doc.selectFirst("a");
System.out.println(elementA.ownText()); // ZOLA
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59127160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档