回到顶部


遍历文档

将html解析成一个Document后,就可以使用类似Dom的方法进行操作
File input = new File("/tmp/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");

Element content = doc.getElementById("content");
Elements links = content.getElementsByTag("a");
for (Element link : links) {
  String linkHref = link.attr("href");
  String linkText = link.text();
}

查找元素

getElementById(String id) 根据id获取相应的信息
getElementsByTag(String tag) 根据标签获取相关的信息
getElementsByClass(String className) 根据获取相应的信息
getElementsByAttribute(String key) 根据属性获取相关的信息 (and related methods)
Element siblings: 
   siblingElements()
   firstElementSibling()
   lastElementSibling()
   nextElementSibling()
   previousElementSibling()
Graph: parent(), children(), child(int index)

元素数据

attr(String key)获取属性
attr(String key, String value)设置属性
attributes()获取所有属性
id(), className() and classNames()
text()获取文本内容
text(String value) 设置文本内容
html()获取元素内HTML
html(String value)设置元素内的HTML内容
outerHtml()获取元素外HTML内容
data()获取数据内容(例如:script和style标签)
tag() and tagName()

操作html和文本

append(String html) 在元素内部前面添加html内容
prepend(String html) 在元素内容后面添加html内容
appendText(String text)
prependText(String text)
appendElement(String tagName) 
prependElement(String tagName)
html(String value)
wrap(String arround) 对元素包裹一个外部html内容
Element div = doc.select("div").first(); // <div></div>
div.html("<p>lorem ipsum</p>"); // <div><p>lorem ipsum</p></div>
div.prepend("<p>First</p>");//在div前添加html内容
div.append("<p>Last</p>");//在div之后添加html内容
// 添完后的结果: <div><p>First</p><p>lorem ipsum</p><p>Last</p></div>

Element span = doc.select("span").first(); // <span>One</span>
span.wrap("<li><a href='http://example.com/'></a></li>");
// 添完后的结果: <li><a href="http://example.com"><span>One</span></a></li>
posted on 2018-04-14 06:46  ssgao  阅读(177)  评论(0编辑  收藏  举报