最近从华为和中兴网管上获取采集器返回值时,其产生的xml文件中老是出现0x1e/0x1c等字符,导致xml无法解析。
参考自:http://sjsky.iteye.com/blog/1055063
网上有较简单的方法就是,过滤掉其中的字符,具体做法是:
//添加此段代码,是为了临时解决中兴/华为创建tnp返回文件中出现0x1e/0x1c等xml无法识别的Unicode字符
//过滤掉非法字符,以确保能解析out文件,by chaisson
InputStream is = null;
StringBuffer xml = null;
if(this.fileName.contains("createTrailNtwProtection")){
xml = new StringBuffer();
String line = null;
while((line = bufReader.readLine())!=null){
line = line.replaceAll("[\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f]", "");
xml.append(line);
logger.info(line);
}
is = new ByteArrayInputStream(xml.toString().trim().getBytes());
}
参考自:http://sjsky.iteye.com/blog/1055063