1
当我使用jsoup解析一些html文件(如“google.com”)时,遇到了 ,它在检索元素的文本时遇到了问题。在jsoup中检索元素的文本
例如,在使用text
功能这div
元素,话 “程序”和“业务”连接到对方,我认为 这是不对的:
<div id="fll" style="margin:19px auto;text-align:center">
<a href="/intl/en/ads/">Advertising Programs</a>
<a href="/services/">Business Solutions</a>
<a href="https://plus.google.com/" rel="publisher">+Google</a>
<a href="/intl/en/about.html">About Google</a>
</div>
你可以测试我的要求与此代码:
URL url = new URL("http://www.google.com");
Document document = Jsoup.parse(url, 10000);
Element element = document.select("div[id=fll]").first();
System.out.println(element.text());
输出将是:
Advertising ProgramsBusiness Solutions+GoogleAbout Google
我想知道可以做任何事情吗?
顺便说我跟踪的代码,结果发现,该问题将被 通过加入这一行校正:
textNode.text(textNode.text() + " ");
的Element
类nodes
包jsoup
的的线755和756之间源代码。
另外这个问题存在于Elements
类的select
包和可能在其他text
功能!
我只是按照你HTML示例。 – 2012-02-17 19:25:41
您只考虑Element类,但Elements类如何?这个问题也引发了这个问题。在这种情况下,这样的结果(连接在逻辑上独立的词)是非常错误的。尽管可以手动避免这种错误的结果。最后,关于Element类,你认为在一般情况下(我们没有关于超级元素的知识,或者换句话说关于父元素),那么jsoup会为这些情况提供另一个API会很好吗?谢谢。 – faghani 2012-02-17 20:46:58