使用Jsoup查找未标记的文本

时间:2014-06-15 19:05:12

标签: java html jsoup

我搜索了一个关于我的困境的答案,但到目前为止还没有找到 - 我的结果中没有明显的解决方案(而且我花了很多时间在各种帖子中尝试建议似乎是半相关的)。好的,现在到了肉:

我有一段html,我想从中得到一些文字 - 但问题是,文字似乎没有标签(并且它不是100%出现 - 在某些理解的情况下文本没有标签)示例html如下:

<html>
 <head></head>
 <body>
   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : . . 
  <a href="?act=Q&amp;ID=249629586" target="R"><b>Post title that I have removed</b></a> &lt; 
  <span class="hnd anon">PosterHandleIReplaced</span> &gt; 
  <font size="1">06/15 11:41&nbsp;&nbsp;</font>
 </body>
</html>

因此,我要抓取的文字部分位于<body><a href>之间,此处:

   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : . . 

但我没有办法只抓住 那个文字。当我尝试将文档或元素转换为文本时,它最终将整个html块转换为字符串并返回给我,这不是我想要的。我想我可以接受整个字符串并开始解析它 - 但这似乎是非常容易出错的错误 - 更不用说:。 。 part实际上可以更长 - 取决于线程中的响应所在的位置(如果它被隐藏在线程中,它可能看起来像......:......:......等)。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

Jsoup在TextNodes中存储文本 - 给定一个Element(在您的示例中为body元素),您可以调用e.textNodes()来获取其文本节点的列表。在这种情况下,您将查看列表中的第一项。 textNodes文档中有一个小例子,展示了该方法与其他子getter方法的关系,这可能对更复杂的任务有所帮助。