Jsoup解析是按照字符串解析的,比如:
Document doc=Jsoup.parse(response1Str)这句传入的response1Str就是一个String类型。因此你只需把本地html文件作为文本全读入为一个字符串,然后再用JSoup进一步解析就行了。
有关读入文件,变成字符串,我刚刚答过一个问题,你可参考一下:
http://zhidao.baidu.com/question/456256407982905445
剩下的代码,就是JSoup用类似CSS选择器的语法,取出你需要的元素,作进一步处理了。
例如:
Elements e2=doc.getElementsByTag("input")for(Element e: e2) {
if(e.attr("name").equals("formhash")) {
formhashStr=e.attr("value")
break
}
}
System.out.println("formhash="+formhash)
上面这个代码片段是取出具有name属性为formhash的<input>标签,并打印此属性的value值。
建议去JSoup官网了解更详细的API及功能。
用JSOUP解析HTML删除掉其中的一段DIV标签及内容的方法:1、解析并提取 HTML 元素
如下:
File input = new File("D:/test.html")
Document doc = Jsoup.parse(input, "UTF-8", "url")
Element content = doc.getElementById("content")
Elements divs= content.getElementsByTag("div")
for (Element div: divs) {
String linkHref = link.attr("id")
String linkText = link.text()
}
2、用remove方法删除div
div.remove()
public void parse(){
String htmlStr = "<table id=kbtable >"
+ "<tr>"
+ "<td width=123>"
+ "<div id=12>这里是要获取的数据1</div>"
+ "<div id=13>这里是要获取的数据2</div>"
+ "</td>"
+ "<td width=123>"
+ "<div id=12>这里是要获取的数据3</div>"
+ "<div id=13>这里是要获取的数据4</div>"
+ "</td>"
+ "</tr>"
+ "</table>"
Document doc = Jsoup.parse(htmlStr)
// 根据id获取table
Element table = doc.getElementById("kbtable")
// 使用选择器选择该table内所有的<tr><tr/>
Elements trs = table.select("tr")
//遍历该表格内的所有的<tr><tr/>
for (int i = 0i <trs.size()++i) {
// 获取一个tr
Element tr = trs.get(i)
// 获取该行的所有td节点
Elements tds = tr.select("td")
// 选择某一个td节点
for (int j = 0j <tds.size()++j) {
Element td = tds.get(j)
// 获取td节点的所有div
Elements divs = td.select("div")
// 选择一个div
for (int k = 0k <divs.size()k++) {
Element div = divs.get(k)
//获取文本信息
String text = div.text()
//输出到控制台
System.out.println(text)
}
}
}
}