JSoup - 将onclick函数添加到锚点href

时间:2016-03-26 16:32:48

标签: java xml-parsing jsoup

现有的HTMl文件

<a href="http://google.com">Link</a>

喜欢将其转换为:

<a href="#" onclick="openFunction('http://google.com')">Link</a>

使用JSoup Java库可以完成许多花哨的解析。但是无法找到像上面要求那样添加属性的线索。请帮忙。

2 个答案:

答案 0 :(得分:2)

要设置属性,请查看the doc

<meta name="viewport" content="width=device-width, initial-scale=1">

会改变:

String html = "<html><head><title>First parse</title></head>"
              + "<body><p>Parsed HTML into a doc.</p><a href=\"http://google.com\">Link</a></body></html>";
Document doc = Jsoup.parse(html);   

Elements links = doc.getElementsByTag("a");
for (Element element : links) {
    element.attr("onclick", "openFunction('"+element.attr("href")+"')");
    element.attr("href", "#");
}

System.out.println(doc.html());

<a href="http://google.com">

答案 1 :(得分:2)

使用Element#attr。我只是使用了一个循环,但你可以随心所欲地完成它。

Document doc = Jsoup.parse("<a href=\"http://google.com\">Link</a>");
for (Element e : doc.getElementsByTag("a")){
    if (e.text().equals("Link")){
        e.attr("onclick", "openFunction('http://google.com')");
        System.out.println(e);
    }
}

输出

<a href="http://google.com" onclick="openFunction('http://google.com')">Link</a>