纯js 遍历文件夹分析xml并保存
2019-04-20 08:55:27来源:博客园 阅读 ()
其实这种功能,网上相关的代码多的是,我也是因为今天正好要用到这个功能,所以临时写了下,放这里保存下,以便将来自己或者别人用的上吧。
当然我写的是一个hta文件。下面是完整js代码,都是调用activex控件去做事,所以也没有考虑浏览器兼容什么的。
代码主要分为:
1.选择目标文件夹
2.遍历目标文件夹中的文件
3.根据需要解析xml文件里内容
4.把解析出来的文件内容存到txt中
<script type='text/javascript'> var fso; //入口方法 div#id=tips 显示提示信息 function st(){ document.getElementById('tips').innerText='开始分析,请稍等'; setTimeout( dosth, 100 ) } //遍历文件夹方法 function dosth(){ try{ fso=new ActiveXObject("Scripting.FileSystemObject"); }catch(e){ alert(e.message); } DeleteLog(); writetxt('xx,xx,xx'); var path=document.getElementById('path').innerText; var f = fso.GetFolder(path); var fc = new Enumerator(f.files); for (; !fc.atEnd(); fc.moveNext()) { readxml(fc.item().Name); } } //读取xml方法 function readxml(file) { var xmlDoc; xmlDoc = new ActiveXObject('Microsoft.XMLDOM');//IE浏览器 xmlDoc.async = false; file=document.getElementById('path').innerText+'\\'+file; xmlDoc.load(file); var target=xmlDoc.getElementsByTagName("target") ; for(var i=0;i<target.length;i++){ var vue=''; if(target[i].getElementsByTagName('ip').length>0){ vue=target[i].getElementsByTagName('ip')[0].childNodes[0].nodeValue; } vue+=','; if(target[i].getElementsByTagName('port').length>0){ vue+=target[i].getElementsByTagName('port')[0].childNodes[0].nodeValue; } vue+=','; if(target[i].getElementsByTagName('protocol').length>0){ vue+=target[i].getElementsByTagName('protocol')[0].childNodes[0].nodeValue; } writetxt(vue); } setTimeout( function(){ document.getElementById('tips').innerText='分析完成,生成result.txt在所选文件夹中'; },100) } //内容写入txt方法 function writetxt(vue){ if (!fso.FileExists(document.getElementById('path').innerText+ "\\result.txt")) { fso.createtextfile(document.getElementById('path').innerText+ "\\result.txt",true); } var f = fso.OpenTextFile(document.getElementById('path').innerText+ "\\result.txt", 8, true); f.WriteLine(vue); f.close(); } //结果删除方法 function DeleteLog() { var strFolder =document.getElementById('path').innerText+ "\\result.txt"; if (fso.FileExists(strFolder)) { var f1 = fso.GetFile(strFolder);//获取指定文件,接下来删除 f1.Delete(); } } //弹出文件夹选择的方法 ,button点击时弹出,选择的文件夹路径保存到div#id=path function filesel(){ var filePath; var objSrc = new ActiveXObject("Shell.Application").BrowseForFolder(0, '请选择保存路径', 0, ''); if (objSrc != null) { filePath = objSrc.Items().Item().Path; document.getElementById('path').innerText=filePath; if (filePath.charAt(0) == ':') { alert('请选择文件夹.'); return; } } } </script>
原文链接:https://www.cnblogs.com/zyskr/p/10736349.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:JavaScript基础篇
下一篇:vue cli使用融云实现聊天
- jquery遍历筛选数组的几种方法和遍历解析json对象 2020-02-29
- JavaScript实现二叉树的先序、中序及后序遍历方法详解 2020-01-17
- Javascript判断图片尺寸大小实例分析 2019-12-06
- jQuery遍历(2) 2019-08-14
- vue动态请求到的多重数组循环遍历,取值问题,如果某个值存 2019-08-14
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash