您的位置:首页 > 其它

批量数据生成xml特殊字符处理

2012-10-24 16:42 309 查看
很久不写技术博客了,今天遇到一个问题,解决了很久,终于搞定了!现在把解决的方法共享.

我想要实现的功能是递归读取文件夹中的文件,然后获取文件中的内容循环批量导入到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();

}

希望遇到相同问题的朋友可以应用!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: