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...