擷取去除xml字串某標籤內容
阿新 • • 發佈:2020-08-26
最近在專案中遇到一個問題:資料在系統間互動,在伺服器列印的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>")); }