【发布时间】:2011-09-09 16:23:03
【问题描述】:
我正在尝试做类似的事情:Jsoup: How to get all html between 2 header tags
但是,我的代码似乎避免使用纯文本。 我正在解析的网站有这样的代码设置:
div class= "引用消息" 回复。可以包含图片、文字等。 div class= "引用消息" 对另一条引用消息的另一条回应用于处理实际消息的代码片段:
Element quote = msg.select(".quoted-message").first();
Boolean hasQuote = false;
Elements siblings = null;
siblings = quote.siblingElements();
createQuotePost(quote);
List<Element> elementsBetween = new ArrayList<Element>();
for (int i = 1; i < siblings.size(); i++) {
Element sibling = siblings.get(i);
if (! "div.quoted-message".equals(sibling.tagName())) {
elementsBetween.add(sibling);
}
else {
Log.v("location", "Clear and Process");
processElementsBetween(elementsBetween);
elementsBetween.clear();
}
}
if (! elementsBetween.isEmpty())
processElementsBetween(elementsBetween);
然而,这似乎并不如我所愿。对代码的响应没有任何特殊格式(即:位于 p 标签中)。使用一些日志记录,我可以看到它们没有被放入 Elements 兄弟姐妹中。 Siblings 似乎只包含换行符等。
注意:我只在小帖子(简单的一个衬里)上对此进行了测试,以节省筛选长页打印输出的时间。
有什么建议吗?
编辑: 这是 2 个引用消息 div 之间的 HTML 代码 sn-p:
MESSAGE TO BE QUOTED
</div>
<br />
<br />
Hello quoted message
<br />
I am a response
<br />
<br />
<div class="quoted-message">
【问题讨论】: