有些时候在java操作解析html元素的时候比较繁琐,今天螃蟹就介绍一种可将html转换为document对象的方法——jsoup
jsoup为我们解析html提供了比较全的API接口,我们通过将html转换为document对象后,在java中便可以形同写html标签一般进行元素的解析、属性的获取。
首先看一个例子:
String html=”<html><header></header><body>
<div>hello world</div>
</body><html/>”;
这是提供的html文本,在转换成document对象后,我们要获取a链接的地址及文本:
代码如下:
-
-
/**
-
* 文件名:Chapter1.java
-
*
-
* 日期:2015年7月12日
-
*
-
*/
-
-
-
import
org.jsoup.Jsoup;
-
import
org.jsoup.nodes.Document;
-
import
org.jsoup.nodes.Element;
-
import
org.jsoup.select.Elements;
-
-
/**
-
*
-
*
-
*
-
*
-
*
-
* @version: 2015年7月12日 下午4:55:41
-
*/
-
-
public
class
Chapter1 {
-
-
/**
-
* @author: IT学习者
-
*
-
*
-
* @version: 2015年7月12日 下午4:55:42
-
*/
-
public
static
void
main(String[] args) {
-
String html =
“<html><head><title>IT学习者</title></head>”
-
-
+
“<body><div id=\”content\”>”
-
+
“<a href=’> IT学习者官网 </a>”
-
+
“<a href=”> IT学习者论坛 </a>”
-
+
“</div></body></html>”
;
-
-
Document doc = Jsoup.parse(html);
-
Element content = doc.getElementById(
“content”
);
-
Elements links = content.getElementsByTag(
“a”
);
-
-
for
(Element link : links) {
-
String linkHref = link.attr(
“href”
);
-
String linkText = link.text();
-
System.out.println(
“linkHref:”
+ linkHref);
-
System.out.println(
“linkText:”
+ linkText);
-
}
-
}
-
}
-