Java 讀取本地和在線 html文檔

由於業務需要,有時會需要讀取一個html模板。

有這麼一個需求:需要讀取html文件的“body”內容,但是不想要這個body裏面的某一個<h2> 元素,如果用正則表達式來進行匹配的話,會非常消耗性能。可以考慮使用這個方法

<!doctype html>
<html>
    <head>
      
        <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
        
        <title>helloWorld--zxk</title>
       
        <meta name='description' content=''>
     </head>
<body>
     <h2 class="rich_media_title" id="activity-name">
     <!-- 設置標題 -->
     #titleName#
     </h2>
     <div>
     </div>
     <h2>1111</h2>
 </body>
</html>

下面是Java代碼

	public static String readTxtFileBodyDoc(String filePath) {
		StringBuilder sb = new StringBuilder();
		try {
			String encoding = "UTF-8";
//讀取本地的html文件方法
			File file = new File(filePath);
			if (file.isFile() && file.exists()) { // 判斷文件是否存在
				// 進行body元素提取
				Document document = null;
				document = Jsoup.parse(file, encoding);
				Element e = document.body();
				Element e1 = e.getElementById("activity-name");
//排除 某一個<h2>元素
				e1.remove();
				String eStr = String.valueOf(e);
				sb.append(eStr);
			}
            if (StringUtils.isEmpty(sb)) {
//讀取線上的html文件地址
			try {
				Document doc = Jsoup.connect(filePath).get();
				Element e = doc.body();
				Element e1 = e.getElementById("activity-name");
				e1.remove();
				String eStr = String.valueOf(e);
				sb.append(eStr);

			} catch (Exception e) {
				
			}
			
		}
		} catch (Exception e) {
            e.printStackTrace();
        }
		String bodyCont = sb.toString();
        return bodyCont;
	}

 

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