node使用xml-writer生成本地XML文件实例
npm中xml-writer文档的链接地址:https://www.npmjs.com/package/xml-writer
npm中的文档比较简单,而且生成本地xml文件的demo并不正确。本篇是对以上文档的更正和补充。
var XMLWriter = require('./node-modules/xml-writer'); // 导入xml-writer模块
var fs = require('fs'); // 导入文件系统模块
var appPath = process.execPath; // nw.exe进程所在目录
console.log("appPath = " + appPath);
var resourcePath = appPath.replace("nw.exe", "xml\\netdisk-user-cfg.xml"); // 将nw.exe进程所在目录改成生成xml文件的目录
console.log("resourcePath = " + resourcePath);
// 创建写入流
var ws = fs.createWriteStream(resourcePath);
// 同步读取文件内容,本段代码可不写,只是方便在console中查看
ws.on('close', function() {
console.log(fs.readFileSync(resourcePath,'UTF-8'));
});
xw = new XMLWriter(true, function(string, encoding) { // 第一个参数选择true会自动排版;false不会自动排版
ws.write(string, encoding);
});
xw.startDocument('1.0', 'UTF-8').startElement(function() {
return 'USER_INFOS';
}).writeElement('INUSE_USERID', '1001')
.writeElement('INUSE_TOKENID', 'asdfasdf123123asdfasdf')
.writeElement('INUSE_IP', '172.16.100.7')
.writeElement('INUSE_PORT', '443')
.startElement('USER_INFO')
.writeElement('USERID', '1001')
.startElement('DISK_CFG_INFOS')
.startElement('DISK_CFG_INFO')
.writeElement('DISK_CFG_NET_ROOT_ID', '1')
.writeElement('DISK_CFG_NET_ROOT_NAME','NAS存储')
.startElement('DISK_CFG_INFOS_UP')
.startElement('DISK_CFG_INFO_UP')
.writeElement('UP_DIR_FROM','D:\\up1')
.writeElement('UP_DIR_TO_NAME','NAS存储\\up1')
.writeElement('UP_DIR_TO_ID','1\\101')
.writeElement('STATUS','0')
.endElement()
.endElement()
.startElement('DISK_CFG_INFOS_DOWN')
.startElement('DISK_CFG_INFO_DOWN')
.writeElement('DOWN_DIR_FROM_NAME','NAS存储\\down1')
.writeElement('DOWN_DIR_FROM_ID','1\\201')
.writeElement('DOWN_DIR_TO','D:\\down1')
.writeElement('STATUS','0')
.endElement()
.endElement()
.endElement()
.endElement()
.endElement()
.endElement();
ws.end();
生成的xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<USER_INFOS>
<INUSE_USERID>1001</INUSE_USERID>
<INUSE_TOKENID>asdfasdf123123asdfasdf</INUSE_TOKENID>
<INUSE_IP>172.16.100.7</INUSE_IP>
<INUSE_PORT>443</INUSE_PORT>
<USER_INFO>
<USERID>1001</USERID>
<DISK_CFG_INFOS>
<DISK_CFG_INFO>
<DISK_CFG_NET_ROOT_ID>1</DISK_CFG_NET_ROOT_ID>
<DISK_CFG_NET_ROOT_NAME>NAS存储</DISK_CFG_NET_ROOT_NAME>
<DISK_CFG_INFOS_UP>
<DISK_CFG_INFO_UP>
<UP_DIR_FROM>D:\up1</UP_DIR_FROM>
<UP_DIR_TO_NAME>NAS存储\up1</UP_DIR_TO_NAME>
<UP_DIR_TO_ID>1\101</UP_DIR_TO_ID>
<STATUS>0</STATUS>
</DISK_CFG_INFO_UP>
</DISK_CFG_INFOS_UP>
<DISK_CFG_INFOS_DOWN>
<DISK_CFG_INFO_DOWN>
<DOWN_DIR_FROM_NAME>NAS存储\down1</DOWN_DIR_FROM_NAME>
<DOWN_DIR_FROM_ID>1\201</DOWN_DIR_FROM_ID>
<DOWN_DIR_TO>D:\down1</DOWN_DIR_TO>
<STATUS>0</STATUS>
</DISK_CFG_INFO_DOWN>
</DISK_CFG_INFOS_DOWN>
</DISK_CFG_INFO>
</DISK_CFG_INFOS>
</USER_INFO>
</USER_INFOS>
node使用xml-writer生成本地XML文件实例的更多相关文章
- Java 读取模板并生成HTML静态文件实例
原理都很简单,主要是对模板的解析.so,我们先准备一个html模板mb.html,做个文件其中的###title###之类的标签用于程序进行查询替换. HTML code复制代码 <html&g ...
- 第三天,爬取伯乐在线文章代码,编写items.py,保存数据到本地json文件中
一. 爬取http://blog.jobbole.com/all-posts/中的所有文章 1. 编写jobbole.py简单代码 import scrapy from scrapy. ...
- Java解析XML与生成XML文件
XML是eXtensible Markup Language(可扩展标记语言)的简写形式,它是一种元标记语言(meta-markup language),也就是说它没有一套能够适用于各个领域中所有用户 ...
- [转]使用ant让Android自动打包的build.xml,自动生成签名的apk文件(支持android4.0以上的版本)
在android4.0以后的sdk里那个脚本就失效了,主要是因为 apkbuilder这个程序不见了: 人家sdk升级,我们的脚本也要跟上趟,修改一下喽. 上网一查,大家的文章还停留在我去年的脚本程度 ...
- 减少服务器压力php生成静态xml文件
一.引 言 在速度上,静态页面要比动态页面的比方php快很多,这是毫无疑问的,但是由于静态页面的灵活性较差,如果不借助数据库或其他的设备保存相关信息的话,整体的管理上比较繁琐,比方修改编辑.比方阅读权 ...
- 自动生成build.xml文件
使用Eclipse 自动生成 Ant的Build.xml 配置文件,选择要生成Build.xml文件的项目,鼠标右键, Export-> General -> Ant Buildfiles ...
- LINQ to XML 从逗号分隔值 (CSV) 文件生成 XML 文件
参考:http://msdn.microsoft.com/zh-cn/library/bb387090.aspx 本示例演示如何使用 语言集成查询 (LINQ) 和 LINQ to XML 从逗号分隔 ...
- 通过MyEclipse生成Hibernate类文件和hbm.xml文件,或者annotation文件
1. 前言 很多人都在使用myEclipse,很多公司也都使用hibernate框架,老版本的hibernate中,由于没有annotation,我们需要写两个文件来维护表与对象的关系,写一个类, ...
- UE4读取本地XML文件
其实这里读取XML也是利用了Tinyxml来读取xml,主要是讲Tinyxml放在UE4中,遇到的一点点坑 1.先给出Tinyxml链接:http://www.grinninglizard.com/t ...
随机推荐
- Android—关于自定义对话框的工具类
开发中有很多地方会用到自定义对话框,为了避免不必要的城府代码,在此总结出一个工具类. 弹出对话框的地方很多,但是都大同小异,不同无非就是提示内容或者图片不同,下面这个类是将提示内容和图片放到了自定义函 ...
- NodeJS使用mysql
1.环境准备 手动添加数据库依赖: 在package.json的dependencies中新增, "mysql" : "latest", { "nam ...
- win10系统下连接无线网络掉线问题解决办法
打开驱动精灵----系统诊断 找一个可修复的驱动点击 选择连不上网中的查看更多 有连不上网络,网络连接受限,解决无线间歇性掉网问题 进入计算机管理----设备管理 修改无线网络属性(名称含有wirel ...
- [BOT]自己动手实现android 饼状图,PieGraphView,附源码解析
本文要介绍的是一个参照手机支付宝app里面记账本功能里的"饼状图"实现的控件.通常app中可能的数据展示控件有柱状图,折线图,饼状图等,如果需要一个包含多种View控件的库,那么 ...
- 凭吊一下ASP.NET 5,然后跨平台,越跨越开心
ASP.NET 5 is dead ASP.NET 5在今年早些时候被宣判死刑了.但是这并不影响我们之前在ASP.NET 5乃至ASP.NET MVC平台上的经验累积--没错,微软改名部门又立功了!他 ...
- 【Knockout.js 学习体验之旅】(1)ko初体验
前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...
- 详解this
this 虐我千百遍,看完此文效立见!不得不说,这篇文章的总结很地道很全面,适合收藏之用. 原文:all this 习惯了高级语言的你或许觉得JavaScript中的this跟Java这些面向对象语言 ...
- 一步一步使用ABP框架搭建正式项目系列教程之本地化详解
返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 本篇目录 扯扯本地化 ABP中的本地化 小结 扯扯本地化 本节来说说本地化,也有叫国际化.全球化的,不管怎么个叫法,反正道理都是一 ...
- 学习python
最近感觉Python 很不错的样子,乘着这次寒假,不如就先学一下吧. 翻看了一些教程,发现<python 简明教程>质量上乘. 我目前学习python就是打算做一些上位机之类的,好像有点杀 ...
- xcode8.1 插件失效的问题
1,查看 Xcode 插件安装目录 ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins 鼠标点一下桌面, command+shi ...