很久不写技术博客了,今天遇到一个问题,解决了很久,终于搞定了!现在把解决的方法共享.
我想要实现的功能是递归读取文件夹中的文件,然后获取文件中的内容循环批量导入到xml中.
在导入数据的过程中出现异常
为解决这个异常尝试了很多办法,比如使用静态块或者
if(mblog_text.indexOf("&") > -1) mblog_text = mblog_text.trim().replace("&", "&");
if(mblog_text.indexOf("<") > -1) mblog_text = mblog_text.trim().replace("<", "<");
if(mblog_text.indexOf(">") > -1) mblog_text = mblog_text.trim().replace(">", ">");
if(mblog_text.indexOf("#") > -1) mblog_text = mblog_text.trim().replace("#", " ");
if(mblog_text.indexOf("'") > -1) mblog_text = mblog_text.trim().replace("'", "'");
if(mblog_text.indexOf("\"") > -1) mblog_text = mblog_text.trim().replace("\"", """);
if(mblog_text.indexOf("\t") > -1) mblog_text = mblog_text.trim().replace("\t", " ");
if(mblog_text.indexOf(" ") > -1) mblog_text = mblog_text.trim().replace("\n", "<br>");
等方法解决,异常依然.
最后使用xml异常字符过滤函数解决了问题,先贴出代码
public static String filter(String xmlStr) {
StringBuilder sb = new StringBuilder();
char[] chs = xmlStr.toCharArray();
for(char ch : chs) {
if((ch >= 0x00 && ch <= 0x08)
|| (ch >= 0x0b && ch <= 0x0c)
|| (ch >= 0x0e && ch <= 0x1f)) {
continue;
} else {
sb.append(ch);
}
}
return sb.toString();
}
希望遇到相同问题的朋友可以应用!