繁体   English   中英

使用Jsoup的HREF + TEXT

[英]HREF + TEXT with Jsoup

我有以下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");

现在我选择“文本”并链接。 我想做可点击的链接,所以我在用:

  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";

没关系,但是这样我就看不到“ TEXT1”和“ TEXT3”。 有人能帮助我吗?

我认为您需要研究elecors。 首先,您的主要选择器

Elements rows = document.select("div#page_content_list01");

由于您实际上选择了div而不是表或表行,因此将仅返回一个ONE元素列表。 我将改为获取所有相关信息:

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元素中的Text与表处于同一级别,而不位于公共div内。 这就是为什么我使用以前的同级符号。 另请注意,我是在脑海中写下这句话的,未经测试。 您应该知道。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM