批量数据生成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();
}
希望遇到相同问题的朋友可以应用!
我想要实现的功能是递归读取文件夹中的文件,然后获取文件中的内容循环批量导入到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();
}
希望遇到相同问题的朋友可以应用!
相关文章推荐
- xslt生成xml出现特殊字符Â处理方法
- sharepoint 影响生成xml 特殊字符处理的方式
- asp生成xml中的特殊字符处理
- C# 生成XML时的特殊字符出现异常处理
- 关于使用dom4j生成xml时特殊字符处理的解决方法
- 【转】XML 特殊字符处理
- XML的CDATA区域(无视特殊字符,一般用在需要多处处理转义的语句中)
- http请求中对特殊字符的处理,以及xml中对特殊字符的处理
- Handling special characters with FOR XML PATH('')(处理xml输出的特殊字符,如<等)
- 数据验证之特殊字符处理
- 处理内容有&特殊字符thinkphp返回xml无法解析的问题<![CDATA[xxx]]>
- xml对特殊字符的处理(字符转义)
- XML中特殊字符的处理方式
- navicat 导出向导 , 通过Excel生成批量SQL语句,处理大量数据
- 有关XML文档中特殊字符的处理
- xml文档里含有特殊字符时的处理方法(php)
- XML 特殊字符处理
- Xml中特殊字符的处理
- xml特殊字符处理 如&