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. Android Weekly Notes Issue #237

    Android Weekly Issue #237 December 25th, 2016 Android Weekly Issue #237 这是本年的最后一篇issue, 感谢大家. 本期内容包括 ...

  2. 树莓派3B的食用方法-1(装系统 网线ssh连接)

    首先要有一个树莓派3B , 在某宝买就行, 这东西基本上找到假货都难,另外国产和英国也没什么差别,差不多哪个便宜买哪个就行. 不要买店家的套餐,一个是配的东西有些不需要,有的质量也不好. 提示:除了G ...

  3. RTP与RTCP协议介绍(转载)

    RTSP发起/终结流媒体.RTP传输流媒体数据 .RTCP对RTP进行控制,同步.RTP中没有连接的概念,本身并不能为按序传输数据包提供可靠的保证,也不提供流量控制和拥塞控制,这些都由RTCP来负责完 ...

  4. BZOJ 1391: [Ceoi2008]order [最小割]

    1391: [Ceoi2008]order Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1509  Solved: 460[Submit][Statu ...

  5. linux压缩和解压缩命令大全

    .tar 解包:tar zxvf FileName.tar 打包:tar czvf FileName.tar DirName ------------------------------------- ...

  6. 微软发布 Windows Server 2016 预览版第三版,开发者要重点关注Nano Server

    微软已经发布 Windows Server 2016 和 System Center 2016 第三个技术预览版,已经提供下载.Windows Server 2016 技术预览版第三版也是首个包括了容 ...

  7. 【完全开源】知乎日报UWP版(上篇):界面设计、官方API分析

    目录 说明 使用Fiddler分析android版API 部分效果图 关于源码 说明 在做博客园UWP版的时候其实就有做知乎日报的打算了,前段时间一直出差,在酒店里用Fiddler简单的分析了一下An ...

  8. 细说websocket - php篇

    下面我画了一个图演示 client 和 server 之间建立 websocket 连接时握手部分,这个部分在 node 中可以十分轻松的完成,因为 node 提供的 net 模块已经对 socket ...

  9. jQuery 根据值或者文本选中select

    今天因为有项目需要动态操作select选中 习惯在百度上搜了一下 ,结果还是挺多的.试了其中一个 发现不能使用.打开第2,3 个发现都是一样的然后自己稍微研究了一下 //初始化select,第一个选中 ...

  10. ASP.NET MVC5+EF6+EasyUI 后台管理系统(54)-工作流设计-所有流程监控

    系列目录 先补充一个平面化登陆页面代码,自己更换喜欢的颜色背景 @using Apps.Common; @{ Layout = null; } <!DOCTYPE html> <ht ...