Jsoup Element.text()断断续续?

时间:2011-04-13 20:29:52

标签: java html html-parsing jsoup

在以下代码片段中:

  String linkHref = "";
  String linkText = "";
  Elements links = div.getElementsByTag("a");
  for (Element link : links) {
    linkHref = link.attr("href");
    linkText += link.text();              
    break;
  }           

linkText有时是空的,即使我在WebView上看得很清楚 链接文字就在那里

另一方面,linkHref总是以正确的值结束。

什么可以解释这种看似断断续续的行为?

这是Jsoup中的错误吗?还有什么我可能会遗失的?

更新,回答@ BalusC的问题:Jsoup版本 jsoup-1.5.2 ,div.html()说:

<div class="d2 dl"> 
 <a href="nextp.html" class="cO"><img src="images/no001.jpg" alt="" vspace="0" width="69" border="0" height="69" hspace="0" /></a> 
 <span class="bc">2.</span> 
 <a accesskey="2" href="nextp.html"> Subject line </a> 
</div> 
<p class="aG">Human resource policies are viewed as a valuable to understand the companies.</p> 
<div> 
</div>

1 个答案:

答案 0 :(得分:2)

第一个链接根本不包含文字。它包含一个图像。所以Jsoup完美地完成了它的工作。

您可能希望首先使用Element#hasText()检查链接是否包含文字。

if (link.hasText()) {
    linkText += link.text();
}