<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.
答案 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版本下完成的。