我有以下HTML页面:
</div><div id="page_content_list01" class="grid_12">
<h2><strong class="floatleft">TEXT1</strong></h2><br>
<table>
<tbody>
<tr>
<th class="no_width">
<p class="floatleft">Attachments:</p>
</th>
<td class="link_azure">
<a target="_blank" href="http://www.example.com">TEXT2</a><br/>
</td>
</tr>
</tbody>
</table><h2><strong class="floatleft">TEXT3</strong></h2><br>
<table>
<tbody>
<tr>
<th class="no_width">
<p class="floatleft">Atachments:</p>
</th>
<td class="link_azure">
<a target="_blank" href="http://www.example2.com">TEXT4</a><br/>
</td>
</tr>
</tbody>
</table><h2><strong class="floatleft">TEXT5</strong></h2><br>
<table>
<tbody>
<tr>
其实我在做:
Elements rows = document.select("div#page_content_list01");
现在我选择&#34; TEXT&#34;和链接。我想制作可点击的链接,所以我使用:
for (Element eleme : rows) {
Elements elements = eleme.select("a");
for (Element elem : elementi) {
String url = elem.attr("href");
String title = elem.text();
}
}
我得到了:
url = "http://www.example.com";
title = "TEXT2";
没关系,但是通过这种方式,我无法阅读&#34; TEXT1&#34;和&#34; TEXT3&#34;。 有人能帮帮我吗?
答案 0 :(得分:0)
我认为你需要对选择者进行研究。首先,您的主要选择器
Elements rows = document.select("div#page_content_list01");
将仅返回一个元素列表,因为您实际上选择了div,而不是表格或表格行。我会这样做以获得所有相关信息:
Elements tables = document.select("div#page_content_list01>table");
for (Element table : tables){
Element h2 = table.previousElementSibling();
String titleStr = h2.text();
Element a = table.select("a").first();
String linkStr = a.attr("href");
}
请注意,h2
元素中的文本与表格处于同一级别,而不是在公共div中。这就是我使用前一个兄弟符号的原因。还要注意我从头脑中写出这个并没有经过考验。你应该明白这个想法。