0
<div></div>
    <div></div>
           <div></div>
            <div></div>
                <ul>
        <form id=the_main_form method="post">
                   <li>
                       <div></div>
                       <div> <h2> 
                <a onclick="xyz;" target="_blank" href="http://sample.com" style="text-decoration:underline;">This is sample</a>
                 </h2></div>
                       <div></div>
                        <div></div>
                      </li>

有50里是这样的

我已经从一个大的 HTML 中发布了 html 的片段。

<div> </div> => 表示它们之间有数据删除了数据,因为它不是必需的。

我想知道 JSOUP-select 语句是如何提取 href 和 Text 的?

我选择了 doc.select("div div div ul xxxx");

其中xxx是表格..我应该给表格ID(或)我应该怎么做

4

2 回答 2

1

试试这个:

Elements allLis = doc.select("#the_main_form > li ");
for (Element li : allLis) {
    Element a = li.select("div:eq(1) > h2 > a");
    String href = a.attr("href");
    String text = a.text();
}

希望能帮助到你!

编辑:

Elements allLis = doc.select("#the_main_form > li ");

这部分代码获取带有 id<li>的所有标签。<form>#the_main_form

Element a = li.select("div:eq(1) > h2 > a");

然后我们遍历所有<li>标签并获取<a>标签,首先获取标签(使用 index=1 -><div>在所有 s 中的第二个标签)然后获取标签,我们的标签存在于其中。<li>div:eq(1)<h2><a>

希望你现在明白!:)

于 2012-10-02T05:25:44.190 回答
1

请试试这个:

package com.stackoverflow.works;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

/*
 * @ author: sarath_sivan
 */

public class HtmlParserService {

    public static void parseHtml(String html) {
        Document document = Jsoup.parse(html);
        Element linkElement = document.select("a").first();
        String linkHref = linkElement.attr("href"); // "http://sample.com"
        String linkText = linkElement.text(); // "This is sample"
        System.out.println(linkHref);
        System.out.println(linkText);
    }

    public static void main(String[] args) {
        String html = "<a onclick=\"xyz;\" target=\"_blank\" href=\"http://sample.com\" style=\"text-decoration:underline;\">This is sample</a>";
        parseHtml(html);
    }

}

希望您的类路径中有 Jsoup 库。

谢谢!

于 2012-10-02T05:35:48.967 回答