1. 程式人生 > 實用技巧 >擷取去除xml字串某標籤內容

擷取去除xml字串某標籤內容

  最近在專案中遇到一個問題:資料在系統間互動,在伺服器列印的xml日誌太大,太大是由於圖片需要轉成base64,十幾萬個字元輸出確實很大,所以想著把打印出的xml標籤中返回的base64資料過濾掉。所以寫了一個方法用於滿足該場景,有兩種方式:

  第一種:

private static String subString(String strXml,String startStr,String endStr) {
        while (true) {
            int index1 = strXml.indexOf(startStr);
            if (index1 != -1) {
                
int index2 = strXml.indexOf(endStr, index1); if (index2 != -1) { String str3 = strXml.substring(0, index1) + strXml.substring(index2 + endStr.length(), strXml.length()); strXml = str3; }else { return strXml; } }
else { return strXml; } } }

第二種:

Map<String, Pattern> map = new HashMap<String, Pattern>();
                String reg = "(\\<SlipContent>.+?\\</SlipContent>)";
                Pattern p=Pattern.compile(reg,Pattern.DOTALL | Pattern.MULTILINE);
                map.put(
"SlipContent", p); Matcher match = map.get("SlipContent").matcher(mcRet); Matcher m=p.matcher(mcRet); if (match.find()) { System.out.println(match.replaceAll("<SlipContent>替換成資料</SlipContent>")); }