package com.ydtech.utils; /** * @author gws * @description:TODO * @date 2022-07-15 17:36 */ public class XMLFormat { //格式化XML字符串 public static String format(String originStr) { String XMLInfo = null; StringBuilder sb = new StringBuilder(); try { if (originStr != null) { if (originStr.trim().startsWith("") + 2); originStr = originStr.trim().substring(originStr.trim().indexOf("?>") + 2, originStr.trim().length()); } char[] charArray = originStr.toCharArray(); int openCount = 0; int closeCount = 0; int lastNode = -1;//0 <> 1 for (int i = 0; i < charArray.length; i++) { // < open and 换行 if (charArray[i] == '<' && i != charArray.length - 1 && charArray[i + 1] != '/' && charArray[i + 1] != '!') { lastNode = 0; enterAndTabs(sb, openCount - closeCount); sb.append(charArray[i]); openCount++; continue; } // ' && i > 0 && charArray[i - 1] == '/') { sb.append(charArray[i]); closeCount++; continue; } //反着来了 sb.append(charArray[i]); } } } catch (Exception exception) { } sb.insert(0, XMLInfo); return sb.toString(); } /** * 回车与制表符 * * @param sb StringBuilder * @param tabCount 多少个制表符 */ private static void enterAndTabs(StringBuilder sb, int tabCount) { sb.append("\n"); while (tabCount-- > 0) { sb.append(" "); } } public static void main(String[] args) { String xmlString_sign = "1d6ff938-ada5-4f39-9fc1-e102120123456test C12022-07-12 18:00:00140400长治市LVVDA11B7AD256799晋DW0717NAAG029172010-08-23奇瑞SQR7150A130轿车"; System.out.println(111); System.out.println(format(xmlString_sign)); } }