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文件实例的更多相关文章

  1. Java 读取模板并生成HTML静态文件实例

    原理都很简单,主要是对模板的解析.so,我们先准备一个html模板mb.html,做个文件其中的###title###之类的标签用于程序进行查询替换. HTML code复制代码 <html&g ...

  2. 第三天,爬取伯乐在线文章代码,编写items.py,保存数据到本地json文件中

        一. 爬取http://blog.jobbole.com/all-posts/中的所有文章     1. 编写jobbole.py简单代码 import scrapy from scrapy. ...

  3. Java解析XML与生成XML文件

    XML是eXtensible Markup Language(可扩展标记语言)的简写形式,它是一种元标记语言(meta-markup language),也就是说它没有一套能够适用于各个领域中所有用户 ...

  4. [转]使用ant让Android自动打包的build.xml,自动生成签名的apk文件(支持android4.0以上的版本)

    在android4.0以后的sdk里那个脚本就失效了,主要是因为 apkbuilder这个程序不见了: 人家sdk升级,我们的脚本也要跟上趟,修改一下喽. 上网一查,大家的文章还停留在我去年的脚本程度 ...

  5. 减少服务器压力php生成静态xml文件

    一.引 言 在速度上,静态页面要比动态页面的比方php快很多,这是毫无疑问的,但是由于静态页面的灵活性较差,如果不借助数据库或其他的设备保存相关信息的话,整体的管理上比较繁琐,比方修改编辑.比方阅读权 ...

  6. 自动生成build.xml文件

    使用Eclipse 自动生成 Ant的Build.xml 配置文件,选择要生成Build.xml文件的项目,鼠标右键, Export-> General -> Ant Buildfiles ...

  7. LINQ to XML 从逗号分隔值 (CSV) 文件生成 XML 文件

    参考:http://msdn.microsoft.com/zh-cn/library/bb387090.aspx 本示例演示如何使用 语言集成查询 (LINQ) 和 LINQ to XML 从逗号分隔 ...

  8. 通过MyEclipse生成Hibernate类文件和hbm.xml文件,或者annotation文件

    1.   前言 很多人都在使用myEclipse,很多公司也都使用hibernate框架,老版本的hibernate中,由于没有annotation,我们需要写两个文件来维护表与对象的关系,写一个类, ...

  9. UE4读取本地XML文件

    其实这里读取XML也是利用了Tinyxml来读取xml,主要是讲Tinyxml放在UE4中,遇到的一点点坑 1.先给出Tinyxml链接:http://www.grinninglizard.com/t ...

随机推荐

  1. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  2. jsp富文本图片和数据上传

    好记性不如烂笔头,记录一下. 2016的最后一天,以一篇博客结尾迎接新的一年. 此处用的富文本编辑器是wangEditor,一款开源的轻量级的富文本编辑器,这里着重说一下里面的图片上传功能. 服务器端 ...

  3. 深入理解Spring MVC

    如何让一个普通类成为Controller? 方案一:实现接口Controller 解析:handleRequest(request,response) 方案二:继承AbstractController ...

  4. SQL Server2014 SP2关键特性

    SQL Server2014 SP2关键特性 转载自:https://blogs.msdn.microsoft.com/sqlreleaseservices/sql-2014-service-pack ...

  5. 玩转Windows服务系列汇总

    玩转Windows服务系列汇总 创建Windows服务 Debug.Release版本的注册和卸载及其原理 无COM接口Windows服务启动失败原因及解决方案 服务运行.停止流程浅析 Windows ...

  6. CSharpGL(18)分别处理glDrawArrays()和glDrawElements()两种方式下的拾取(ColorCodedPicking)

    CSharpGL(18)分别处理glDrawArrays()和glDrawElements()两种方式下的拾取(ColorCodedPicking) 我在(Modern OpenGL用Shader拾取 ...

  7. 我的架构设计~用层关系图说说mvc,mvvm,soa,ddd

    下面是按着我所接触的架构模式,开始一个一个的说一下 第一 标准架构 三层结构

  8. iOS 之消息推送(个推)---个人小结

    前言:自从上个星期开始整这个推送,弄了差不多一个星期,今天终于给整好了,因此现在来记录这段"奇妙"的旅程. 我们公司使用的消息推送是用的第三方--个推,这里不得不说一下,个推的技术 ...

  9. 使用nwjs开发桌面应用之Hello,World!

    今天发现原来JavaScript也可以用来开发桌面应用程序,顿时有一种很牛逼的感觉,于是马上就开始了Hello,World!,感受一下JavaScript的强大. 可以用来开发桌面应用的js框架有三种 ...

  10. XSS原理

    跨站脚本攻击(Cross-Site Scripting),是一种网站应用程序的安全漏洞,是代码注入攻击的一种.   XSS的种类:   反射型XSS: 非持久型XSS(需要自行触发,输入-输出).  ...