在使用zip包提取document.xml的时候,例如:$被分离成 ${
public class FtlGenerate {
public static void main(String[] args) {
FileReader fileReader = new FileReader("C:\\Users\\xxx\\Desktop\\work-space\\server\\src\\main\\resources\\template\\docx\\document.xml");
List<String> strings = fileReader.readLines();
FileAppender appender = new FileAppender(FileUtil.newFile("C:\\Users\\xxx\\Desktop\\work-space\\server\\src\\main\\resources\\template\\docx\\document_result.xml")
, 16
, true);
for (String string : strings) {
if (!string.contains("$")) {
appender.append(string);
continue;
}
string = string.replaceAll("\\$", "#\\$");
String[] ss = string.split("#");
// 同一行的内容写到同一行,文件追加自动换行了
StringBuilder sb = new StringBuilder();
for (int i = 0; i < ss.length; i++) {
String s1 = ss[i];
if (!s1.startsWith("$")) {
sb.append(s1);
continue;
}
int i1 = s1.lastIndexOf("}");
String substr = s1.substring(0, i1 + 1);
sb.append(substr.replaceAll("<[^>]+>", ""));
sb.append(s1.substring(i1 + 1));
}
appender.append(sb.toString());
}
appender.flush();
appender.toString();
}
}