Java Jsoup:无法获取全部<;a>;标记文本

Java Jsoup:无法获取全部<;a>;标记文本,java,jsoup,Java,Jsoup,它只向我打招呼,但我也要打招呼 我已经阅读了关于这个问题的堆栈溢出的先前答案,但我无法得到我想要的。考虑到jsoup似乎使用css选择器,我将尝试以下方法 System.out.println(doc.select("a").text()); 但这是相当有限的,因为如果你有一个更进一步的嵌套标记,你会有一个问题 请注意,您的示例是格式不正确的html。最后两个标记未关闭。Jsoup试图以这种方式理解这一点: System.out.println(doc.select("a, p a").te

它只向我打招呼,但我也要打招呼


我已经阅读了关于这个问题的堆栈溢出的先前答案,但我无法得到我想要的。

考虑到jsoup似乎使用css选择器,我将尝试以下方法

System.out.println(doc.select("a").text());

但这是相当有限的,因为如果你有一个更进一步的嵌套标记,你会有一个问题

请注意,您的示例是格式不正确的html。最后两个
标记未关闭。Jsoup试图以这种方式理解这一点:

 System.out.println(doc.select("a, p a").text());
导致

System.out.println(doc.select("a").text());

也许你使用了一个错误版本的JSoup?我的测试是用1.8.3版完成的,不确定,但如果它们像css一样工作,可能是println(doc.select(“pa”).text();?虽然听起来是一个丑陋的解决方案,但我不知道JSoup,如果我使用这个println(doc.select(“pa”).text()),它可能会工作^;它只返回hello1,但我希望hello、hello1和hello2来自一个命令。使用jsoup 1.8.3,两者都
select(“a”).text()
getElementsByTag(“a”)。text()
提供了我得到的所有三个实例,谢谢你说得对,这会产生问题,因为我有一个html文件,其中包含进一步嵌套的标记。实际上,我上面写的html只是一个错误的例子,我没有关闭它,但在搜索了很多后,我终于得到了我的结果。
<html>
 <head></head>
 <body>
  <a>hello</a>
  <p><a>hello1</a></p>
  <a>hello2</a>
  <a></a>
 </body>
</html>
System.out.println(doc.select("a").text());
hello hello1 hello2