首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > CSS >

jsoup 处置HTML 坑记录

2013-02-27 
jsoup 处理HTML 坑记录public static void main(String[] args) {String content a href\test.html\

jsoup 处理HTML 坑记录
public static void main(String[] args) { String content = "<a href="test.html" title="men tshirt" >men tshirt</a>"; try { Document document = Jsoup.parse(content); Elements links = document.select("a"); for (Element link : links) { link.attr("clickdata", "adfafgadsfaf"); if (!link.hasClass("click-target-with-quot")) { link.addClass("click-target-with-quot"); } } System.out.println(document.html());// 错误代码 System.out.println(document.body().html());//正确代码 } catch (Exception e) { } }

?

需求也很简单,将一个HTML片段中的所有的<a>标签,增加一个class,和一个自定义属性。

代码中红色标注了错误和正确的代码,区别在于错误的代码会返回添加了<html>等头尾的标签。

?

<html> <head></head> <body>  <a href="test.html" title="men tshirt" clickdata="adfafgadsfaf" name="code"><a href="test.html" title="men tshirt" clickdata="adfafgadsfaf" name="code">BeforeHtml {        boolean process(Token t, HtmlTreeBuilder tb) {            if (t.isDoctype()) {                tb.error(this);                return false;            } else if (t.isComment()) {                tb.insert(t.asComment());            } else if (isWhitespace(t)) {                return true; // ignore whitespace            } else if (t.isStartTag() && t.asStartTag().name().equals("html")) {                tb.insert(t.asStartTag());                tb.transition(BeforeHead);            } else if (t.isEndTag() && (StringUtil.in(t.asEndTag().name(), "head", "body", "html", "br"))) {                return anythingElse(t, tb);            } else if (t.isEndTag()) {                tb.error(this);                return false;            } else {                return anythingElse(t, tb);            }            return true;        }        private boolean anythingElse(Token t, HtmlTreeBuilder tb) {            tb.insert("html");            tb.transition(BeforeHead);            return tb.process(t);        }    }

?

?

?

?

本站支持?pay for your wishes

热点排行