Jsoup:无法获得所有<a> tag text

时间:2015-12-08 09:31:28

标签: java jsoup

<body>
     <a>hello</a>
     <p><a>hello1</a></p>
     <a>hello2<a>
</body>

I want all text of <a> tag but when I try, it only returns the text "hello" and "hello2".

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

it showing me only hello hello2 but i want hello1 also

I have read previous answer of stack-overflow regarding this issue but I'm not able to get what I want.

2 个答案:

答案 0 :(得分:1)

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

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

但这是相当有限的,因为如果你进一步嵌套了一个标签,你就会遇到问题。

答案 1 :(得分:1)

请注意您的示例是格式错误的HTML。最后两个<a>标记未关闭。 Jsoup试图这样理解:

<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

也许你使用了错误的JSoup版本?我的测试是在1.8.3版本下完成的。