var readline = require('readline');
var fs = require('fs');
var os = require('os');
var fReadName = './Loclistcn.xml';//源文件
var fWriteName = './LocListcn1.xml';//目标文件
var fRead = fs.createReadStream(fReadName);
var fWrite = fs.createWriteStream(fWriteName);
var enableWriteIndex = true;
var enableWriteIndex1 = true;
fRead.on('end', ()=>{
console.log('end');
enableWriteIndex = false;
});
var index = 1;
var arr = [];
var code = ""
var country = ""
var objReadline = readline.createInterface({
input: fRead,
output: fWrite,
/*terminal: true*/
});
objReadline.on('line', (line)=>{
//正则处理
var rg1 = /(<State)(.*)(Code=")([a-zA-Z 0-9]*)(">)/
var rg3 = /(<State)(.*)(>)/
var rg4 = /(<CountryRegion)(.*)(Code=")([a-zA-Z 0-9]*)(">)/
var rg2 = /(<City.*)(Code=")([a-zA-Z 0-9]*)((".*\/>)|(">))/
var rg6 = /(<\/City.*)(>)/
var rg5 = /( <Region .*)(Code=")([a-zA-Z 0-9]*)(".*)(\/>)/
var str1
if(rg1.test(line)){
code =line.replace(rg1,RegExp.$4).trim()
}else if(rg3.test(line)){
code = ""
}
if(rg4.test(line)){
country =line.replace(rg4,RegExp.$4).trim()
}
if(rg2.test(line)){
str1 =line.replace(rg2,RegExp.$1 + ' cityCode="'+ (code ? (code+'-') : code)+ RegExp.$3+ '"' +
' countryCode="'+ country + '" ' +RegExp.$2 + RegExp.$3 +(RegExp.$4 ==='">' ? ' "/>' : RegExp.$4 ))
}else{
str1 = line
}
if(!rg5.test(line) && !rg6.test(line)){
var tmp =str1 + '\n';
// console.log(tmp)
str1 && fWrite.write(tmp);
}
index ++
});
objReadline.on('close', ()=>{
console.log('readline close...');
});
node读取文本文件并处理输出
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- Node.js与其它语言一样,提供了对文本文件按照行来读的功能。不过与Ruby,Python等语言不同,Node....
- 最近业务上用到了天气查询接口,因为输入源仅有城市名称,接口需要用到的是城市代码,为了实现功能,以key=value...