使用Jsoup怎样解析本地的html文件

html-css013

使用Jsoup怎样解析本地的html文件,第1张

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)

}

}

}

}