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. AutoIt实现Webdriver自动化测试文件上传

    在运用WebDriver进行自动化测试时,由于WebDriver自身的限制,对于上传文件时Windows弹出的文件选择窗口无法控制,通过在网上查找资料锁定使用AutoIt来控制文件上传窗口. Auto ...

  2. C#跨平台手机应用开发工具Xamarin尝试 与Eclipse简单对比

    Xamarin 支持使用C#开发基于Android.IOS.WindowsPhone应用开发,最大特点C#+跨平台,详细说明问度娘. 安装 研究 想体验研究的点击查看页面 Xamarin For Vi ...

  3. CentOS7下自定义目录安装mono+jexus教程

    一.阅读前须知: 1.本文属于安装完Centos7之后的步骤 2.如果还不了解mono,请点击mono 3.本篇主要内容是使用自定义目录安装mono+jexus教程,使用默认目录请查看使用默认目录安装 ...

  4. MySql LIKE 查找带反斜线“\”的记录

    解决方法是在反斜线“\前加“\\\”三个反斜杠. SELECT * FROM 表名 AS a WHERE a.字段 \\\\qc0npwqe.3v4', '%') 原理: 写成三个'\'的原因是反斜线 ...

  5. Error connecting to database [Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)]

    参照 http://stackoverflow.com/questions/4448467/cant-connect-to-local-mysql-server-through-socket-var- ...

  6. WCF学习之旅—第三个示例之二(二十八)

    上接WCF学习之旅—第三个示例之一(二十七) 五.在项目BookMgr.Model创建实体类数据 第一步,安装Entity Framework 1)  使用NuGet下载最新版的Entity Fram ...

  7. java终端获取输入

    上一篇博客已经介绍了System.in这个输入流这次谈谈java如何获取终端(控制台)的输入 (1)BufferedReader JDK 1.4 及以下的版本中要想从控制台中输入数据只有一种办法,即使 ...

  8. JavaScript权威设计--JavaScript表达式与运算符,语句(简要学习笔记六)

    1.delete是一元操作符,用来删除对象属性或者元素. var a={ x:1, y:2 } delete a.x; //删除x属性 “x”in a //false:a对象中已经不存在x属性 ale ...

  9. ASP.NET MVC5+EF6+EasyUI 后台管理系统(22)-权限管理系统-模块导航制作

    系列目录 最近比较忙,系统难度独步增加,文章的发布速度明显比以前慢了. 由于我们已经跑通了整个系统,所有东西都回到了简单,接下来我们做模块制作也就是操作SysModule表. 首先我们来回顾一下之前的 ...

  10. 开源Word读写组件DocX 的深入研究和问题总结

    一. 前言 前两天看到了asxinyu大神的[原创]开源Word读写组件DocX介绍与入门,正好我也有类似的自动生成word文档得需求,于是便仔细的研究了这个DocX. 我也把它融入到我的项目当中并进 ...