代码如下:注意xml 是word另存为的word xml
//要处理文件的路径
public static String path = “D:\”;
public static void main(String[] args) throws IOException {
//格式错误的文件名称
File oldFile = new File(path+ “word.xml”);
//导出的文件名称,后缀这里直接改成ftl了
File newFile = new File(path + “newFile.ftl”);
FileReader fr = new FileReader(oldFile);
char[] chars = new char[1024];
int len ;
StringBuffer sb = new StringBuffer();
StringBuffer inner = new StringBuffer();
int f = 0;
int b = 0;
while ((len = fr.read(chars)) != -1) {
for (int i = 0; i < len; i++) {
if (chars[i] == '<') {
f = 1;
sb.append(chars[i]);
continue;
} else if (chars[i] == '>') {
f = 0;
sb.append(chars[i]);
continue;
}
if(f == 1){
sb.append(chars[i]);
}
//xml 内部内容
if (f == 0) {
if (chars[i] == '$') {
b = 1;
inner.append(chars[i]);
continue;
}
if (chars[i] == '}' && b == 1) {
b = 0;
inner.append(chars[i]);
sb.append(inner.toString());
//重建 sb
inner = new StringBuffer();
continue;
}
if (b == 1) {
inner.append(chars[i]);
continue;
}
sb.append(chars[i]);
}
}
}
FileWriter fw = new FileWriter(newFile);
fw.write(sb.toString());
fw.flush();
fw.close();
fr.close();System.out.println("处理完成");
}
运行即可解决,亲测有效