Jsoup學習筆記1:解析字符串

注意:在Eclipse裏使用Jsoup解析文檔時要在項目中導入Jsoup的jar包!

JsoupJava的一個解析和遍歷HTMLAPI,可以把一個HTML字符串解析成一個Document文檔,並且會盡可能的得到一個標準的解析結果,會自動補充缺失的結束標記。

例如:"<p>Jsoup<p>Jsoup"會解析爲"<p>Jsoup</p><p>Jsoup</p>",官方文檔說會創建隱式標籤,即"<td>Jsoup</td>"會解析爲<table><tr><td>Jsoup</td></tr></table>",但是經驗證並不會創建,而是會忽略td標籤,解析爲"Jsoup",會自動創建完整的HTML頁面結構,即自動創建<html><head><body>標籤,最終解析的結果爲<html><head></head><body>Jsoup</body></html>

例如:

package com.daxiang.myjsoup;
import java.io.File;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

public class JsoupTest1 {
	public static void main(String args[]) throws IOException{
		
		String html1="<p>Jsoup<p>LKZERO";    
		Document doc=Jsoup.parse(html1);     
		System.out.println(doc.toString());    
		System.out.println("--------");           
		String html2="<td>LKZERO</td><br>" + "<tr><td>LKZERO<td></tr><br/>" + "<table><tr><td>JSOUP</td></tr></table>";    
		Document doc2=Jsoup.parse(html2);    
		System.out.println(doc2.toString());
	}
}

得到結果:

<html>
 <head></head>
 <body>
 <p>Jsoup</p>
 <p>LKZERO</p>
 </body>
</html>
--------
<html>
 <head></head>
 <body>
 LKZERO
 <br>LKZERO
 <br>
 <table>
  <tbody>
   <tr>
    <td>JSOUP</td>
   </tr>
  </tbody>
 </table>
 </body>
</html>

Jsoup解析得到的Document文檔是由Document,Element,Node和TextNode組成的,其中Document繼承Element,Element繼承Node,TextNode繼承Node。

parse()靜態方法:Jsoup解析HTML字符串使用parse靜態方法,無論HTML字符串是什麼內容,都會得到一個Document文檔,至少會包含<html><head><body>三個元素。

parseBodyFragment()靜態方法:經我測試與parse()得到的結果相同,二者區別有待進一步驗證

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章