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—基于GifView显示gif动态图片

    android中显示gif动态图片用到了开源框架GifView 1.拷GifView.jar到自己的项目中. 2.将自己的gif图片拷贝到drawable文件夹 3.在xml文件中设置基本属性: &l ...

  2. TFS 2015 敏捷开发实践 – 看板的使用

    看板在现代应用开发过程中使用非常广泛,不管是使用传统的瀑布式开发还是敏捷开发,都可以使用看板管理.因为看板拥有简单的管理方法,直观的显示方式,所以很多软件开发团队选择使用看板进行软件开发管理.本文不在 ...

  3. linux系统维护时的一些小技巧,包括系统挂载新磁盘的方法!可收藏!

    这里发布一些平时所用到的小技巧,不多,不过会持续更新.... 1.需要将history创建硬链接ln 全盘需要备份硬链接 ln /etc/xxx /home/xxx 2.root用户不可以远程 /et ...

  4. Merge Sorted Array

    Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note:Yo ...

  5. 写给.NET开发者的数据库Migration方案

    微软给我们提供了一种非常好用的数据库迁移方案,但是我发现周围的同学用的并不多,所以我还是想把这个方案整理一下..NET选手看过来,特别是还在通过手工执行脚本来迁移数据库的同学们,当然你也可以选择EF的 ...

  6. Repository 仓储,你的归宿究竟在哪?(三)-SELECT 某某某。。。

    写在前面 首先,本篇博文主要包含两个主题: 领域服务中使用仓储 SELECT 某某某(有点晕?请看下面.) 上一篇:Repository 仓储,你的归宿究竟在哪?(二)-这样的应用层代码,你能接受吗? ...

  7. Android下/data/data/<package_name>/files读写权限

    今天将更新模块拿到android上面测试的时候,发现在创建writablepath.."upd/"目录的时候出现Permission Denied提示BTW:我使用的是lfs来创建 ...

  8. c += c-- | ++b;

    一切都是从这开始的 一个大一学弟通过QQ给我发来一个C++的题: int c = 8, b = 3; c += c-- | ++b; 问c的值是多少.通过笔算得到c为19,然后随手建了个C#控制台项目 ...

  9. 浅析Java 泛型

    泛型是JavaSE5引入的一个新概念,但是这个概念在编程语言中却是很普遍的一个概念.下面,根据以下内容,我们总结下在Java中使用泛型. 泛型使用的意义 什么是泛型 泛型类 泛型方法 泛型接口 泛型擦 ...

  10. 深入浅出Struts2+Spring+Hibernate框架

    一.深入浅出Struts2 什么是Struts2? struts2是一种基于MVC的轻量级的WEB应用框架.有了这个框架我们就可以在这个框架的基础上做起,这样就大大的提高了我们的开发效率和质量,为公司 ...