1.最基本的解析Html字符串

@Test public void testHtmlToString2() { String html = \"大众<p>这是一个段落<img src=\公众test.img\"大众/>内容;</p>\公众; Document doc = Jsoup.parse(html); System.out.println(doc); // 输出带标签的html文档 System.out.println(\公众---------------------\n\公众+doc.text()); // 输出内容 Elements element = doc.getElementsByTag(\公众p\公众); System.out.println(\"大众---------------------\n\"大众+element.get(0).html()); }

结果:

<html> <head></head> <body> <p>这是一个段落<img src=\"大众test.img\"大众>内容;</p> </body></html>---------------------这是一个段落内容;---------------------这是一个段落<img src=\"大众test.img\"大众>内容;

2.解析字符串

后台返回html标签Jsoup解析Html标签Java后台解析 React

// 解析html字符串 @Test public void testHtmlToString() { String html = \"大众<html><head><title>First parse</title></head>\公众 + \"大众<body><p style='center'>Parsed HTML into a doc.</p></body></html>\公众; Document doc = Jsoup.parse(html); System.out.println(doc); // 输出带标签的html文档 System.out.println(\公众---------------------\n\"大众+doc.text()); // 输出内容 }

结果:

<html>

<head>

<title>First parse</title>

</head>

<body>

<p style=\"大众center\"大众>Parsed HTML into a doc.</p>

</body>

</html>

---------------------

First parse Parsed HTML into a doc.

3.// 解析body片段

@Test public void test2() { String html = \公众<div><p>Lorem ipsum.</p>\"大众; Document doc = Jsoup.parseBodyFragment(html); System.out.println(doc); System.out.println(doc.text()); }

结果:

<html>

<head></head>

<body>

<div>

<p>Lorem ipsum.</p>

</div>

</body>

</html>

Lorem ipsum.

4.// 解析一个url与用选择器选择元素(相称于查看源码)

@Test public void test4() throws IOException { Document doc = Jsoup.connect(\"大众http://qiaoliqiang.cn:8080/\"大众).get(); String title = doc.title();// 获取title System.out.println(title); System.out.println(\"大众---------------------\n\"大众+doc.toString()+\"大众---------------------\n\"大众);// 输出文档全部 Elements links = doc.getElementsByTag(\"大众a\公众); for (Element ele : links) { System.out.println(ele.toString()); } }

Apache Tomcat/7.0.72

---------------------

<!doctype html>

<html lang=\"大众en\"大众>

<head>

<title>Apache Tomcat/7.0.72</title>

<link href=\"大众favicon.ico\"大众 rel=\"大众icon\公众 type=\公众image/x-icon\"大众>

<link href=\"大众favicon.ico\公众 rel=\公众shortcut icon\公众 type=\公众image/x-icon\"大众>

..........

5.选择器解析HTML并且提取input的value值:(获取元素的属性)

/ <span class=\公众bigNum\"大众>二</span>、 <span><input class=\"大众el_modifiedTitle\"大众 value=\"大众多选题\"大众 type=\"大众text\"大众> </span> <span>(每到题 <input class=\公众el_modifiedGrade\公众 value=\"大众2\"大众 type=\"大众text\公众> </span> <span> 分;共</span><span class=\"大众numTotal\"大众>4分/</span> <span class=\公众numQues\"大众>2题)</span> @param html @return / // 去掉大题的标签 public static String removeBigQues(String html) { StringBuffer sb = new StringBuffer(); Document doc = Jsoup.parse(html); System.out.println(doc); System.out.println(doc.text()); sb.append(doc.select(\"大众.bigNum\"大众).get(0).text() + \公众. \"大众); sb.append(doc.select(\"大众.el_modifiedTitle\"大众).get(0).attr(\"大众value\"大众)); sb.append(doc.select(\"大众span\"大众).get(2).text() + doc.select(\公众.el_modifiedGrade\"大众).get(0).attr(\"大众value\"大众)); sb.append(doc.select(\"大众span\"大众).get(3).text()); sb.append(doc.select(\"大众span\"大众).get(4).text()); sb.append(doc.select(\"大众span\"大众).get(5).text()); System.out.println(sb.toString()); return sb.toString(); }

补充:本日创造Jsoup竟然没有解析元素style的方法,以是只能自己手写

先获取到style属性,再对style属性进行处理,例如:

String style = \"大众position: absolute; width: 500px; height: 552px;\"大众; String extract = \"大众width\"大众; if (style.contains(extract)) { style = style.substring(style.indexOf(extract)); System.out.println(style); style = style.substring(0, style.indexOf(\"大众;\公众)); System.out.println(style); String attr = style.substring(style.indexOf(\公众:\"大众) + 2); System.out.println(attr.substring(0, attr.indexOf(\"大众px\公众))); }

补充:元素的html()与outerHtml()的差异

html()会返回包括子元素的内容以及标签,不包括自己

outerHtml()会返回包括自己在内的元素。

在jQuery中如果返回子元素的内容也是html(),如果返回包括自己的内容须要用$(\"大众#chartdiv\公众).prop(\"大众outerHTML\"大众);//会返回包括自己在内的内容