0

所以,我有一个 huuuge HTML 文件,其中有许多这样的 HREF 和链接名称

<A HREF="AccountCttR.html" TARGET="tableFrame">AccountCttRR</A><BR>
<A HREF="AccountCV.html" TARGET="tableFrame">AccCV</A><BR>
<A HREF="AccountCR.html#AccountHolder" TARGET="tableFrame">AccH</A><BR>

现在,我想解析这个 HTML 文件,并用

Key = <*.html>; value = <linkname>

前提条件:HREF 都是唯一的。因此,它们可以很容易地用作 hashmap 的键。我知道我可以使用 JSoup,但我该怎么做(在 java 中)?请帮忙?

使用的代码:我正在尝试使用此代码:

// rawContent is the "string" output of bufferedreader

Element content = Jsoup.parse(rawContent).getElementById("content");
Elements links = content.getElementsByTag("a");

for (Element link : links) {
    String linkHref = link.attr("href");
    String linkText = link.text();
    System.out.println(linkHref+" @@@ "+ linkText);
}

但它返回一个 Java NullPointerException

4

1 回答 1

3

Jsoup是一个用于处理真实世界 HTML 的 Java 库。它提供了一个非常方便的 API 用于提取和操作数据,使用最好的 DOM、CSS 和类似 jquery 的方法

这是您可以尝试将链接和详细信息存储在 HashMap 中的代码:

Document doc;
Map<String,String> hrefMap = new HashMap<String,String>();
try {

    // need http protocol
    doc = Jsoup.connect("http://google.com").get();

// get all links
    Elements links = doc.select("a[href]");
    for (Element link : links) {

             //put elements in the map
            hrefMap.put(link.attr("href"),link.text() );

    }

} catch (IOException e) {
    e.printStackTrace();
}
于 2013-07-31T02:56:53.690 回答