2014-01-10 54 views
2

我需要一些幫助來進行清洗jsoup用戶輸入,我想刪除所有已知的HTML標籤,但讓<>如果沒有一個真正的HTML標記的一部分。jsoup乾淨的HTML實體

Jsoup.clean("<b>test</b> te<st <test >test", Whitelist.none())

電流輸出 test tetest

,我想: test te<st <test >test

感謝您的幫助。

+1

這看起來不像斯卡拉 – Jean

+0

我的回答有幫助嗎? – alkis

回答

0

Jsoup不提供這種功能。檢查下面的代碼。

import java.util.ArrayList; 
import java.util.List; 


public class Main { 

    public static String removeTags(List<String> tags, String source) { 

     if(tags == null || tags.size() == 0) return source; 

     StringBuilder strb = new StringBuilder(); 

     for(String tag : tags) { 
      strb.append(String.format("</?%s.*?>|", tag)); 
     } 

     return source.replaceAll(strb.substring(0, strb.length() - 1), ""); 

     //strb example : "</?span.*?>|</?em.*?>" 
    } 

    public static void main(String[] args) { 
     try { 
      String str = "<b>testj</b> te<st <test >test"; 
      List<String> tags = new ArrayList<String>(); 
      tags.add("b"); 
      System.out.println(removeTags(tags, str)); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
}