【发布时间】:2013-08-14 09:15:09
【问题描述】:
我有一部分 HTML 文件,格式如下:
<h6 class="uiStreamMessage" data-ft="_____">
<span class="messageBody" data-ft="____"> Welcome
</span>
</h6>
在文件中,还有其他 span 类。但我只想获取所有“messageBody”跨度的文本,它将被插入到数据库中。
我试过了:
Elements links = doc.select("span.messageBody");
for (Element link : links) {
message = link.text();
// codes to insert into DB
}
甚至
Elements links = doc.select("h6.uiStreamMessage span.messageBody");
两者都不起作用。我无法从其他地方找到任何解决方案。 请帮忙。
**编辑
我已经意识到它是 html 文件中的一个嵌套跨度:
<h6 class="uiStreamMessage" data-ft="">
<span class="messageBody" data-ft="">Twisted<a href="http://"><span>http://</span>
<span class="word_break"></span>www.tb.net/</a> Balloons
</span>
</h6>
而且只是有时在“messageBody”范围内还有另一个范围。如何获取“messageBody”范围内的所有文本?
【问题讨论】:
-
我问你一个问题,'message'的内容是什么?您是否尝试过每次都记录它?
-
“消息”为空。我有一些'println()',只要在那个'for'循环之后,它们就不会打印任何东西。
-
好吧,在循环后'message'应该只有最后一个span.messageBody的文本。在循环之后使用“消息”是个坏主意。如果您需要这种方式,也许您应该将消息存储在 List
-
谢谢,我会记住的。不过,我已经意识到哪里出了问题。我已经编辑了问题,请看一下。
-
使用您发布的最新 html,您要检索的确切文本是什么?那个html是一团糟..