实例分析nodejs模块xml2js解析xml过程中遇到的坑


Posted in NodeJs onMarch 18, 2017

本文实例讲述了nodejs模块xml2js解析xml过程中遇到的坑。分享给大家供大家参考,具体如下:

在一个项目中,用到nodejs模块xml2js解析xml,xml的数据如下:

<xml>
<MsgId>6197906553041859764</MsgId>
</xml>

用xml2js中的xml2js.parseString 方法解析,本来以为是一个json,但总是解析失败,把解析的结果log下后如下:

{ xml: { MsgId: [ '6197906553041859764' ] } }

本来xml中<MsgId>包的是一个字符串,结果解析出来的是数组。

后来查了xml2js的官网,发现了如下的参数:

explicitArray (default: true): Always put child nodes in an array if true; otherwise an array is created only if there is more than one.

原来xml2js默认会把子子节点的值变为一个数组,这个坑真大啊!!!为了查这个问题,花了半天的时间。

知道原因后,解决的方法也很简单,在调用xml2js.parseString时加入explicitArray的参数如下:

xml2js.parseString(buf, {explicitArray : false}, function(err, json) {
});

修改后解析如下的结果如下:

{ xml: { MsgId: '6197906553041859764' } }

现在就变成一个字符串了。

NodeJs 相关文章推荐
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
Jan 01 NodeJs
nodejs事件的监听与触发的理解分析
Feb 12 NodeJs
nodejs如何获取时间戳与时间差
Aug 03 NodeJs
nodejs 实现钉钉ISV接入的加密解密方法
Jan 16 NodeJs
NodeJS处理Express中异步错误
Mar 26 NodeJs
深入nodejs中流(stream)的理解
Mar 27 NodeJs
docker中编译nodejs并使用nginx启动
Jun 23 NodeJs
nodejs后台集成ueditor富文本编辑器的实例
Jul 11 NodeJs
nodejs实现简单的gulp打包
Dec 21 NodeJs
关于Mac下安装nodejs、npm和cnpm的教程
Apr 11 NodeJs
nodejs前端模板引擎swig入门详解
May 15 NodeJs
NodeJs 实现简单WebSocket即时通讯的示例代码
Aug 05 NodeJs
nodejs中模块定义实例详解
Mar 18 #NodeJs
Nodejs基于LRU算法实现的缓存处理操作示例
Mar 17 #NodeJs
用nodeJS搭建本地文件服务器的几种方法小结
Mar 16 #NodeJs
nodejs+express实现文件上传下载管理网站
Mar 15 #NodeJs
nodejs搭建本地http服务器教程
Mar 13 #NodeJs
搭建简单的nodejs http服务器详解
Mar 09 #NodeJs
nodejs读写json文件的简单方法(必看)
Mar 09 #NodeJs
You might like
一个php作的文本留言本的例子(二)
2006/10/09 PHP
PHP遍历XML文档所有节点的方法
2015/03/12 PHP
深入理解PHP类的自动载入机制
2016/09/16 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
2016/11/17 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
jQuery代码优化 事件委托篇
2011/11/01 Javascript
使用JS CSS去除IE链接虚线框的三种方法
2013/11/14 Javascript
JavaScript实现twitter puddles算法实例
2014/12/06 Javascript
js生成验证码并直接在前端判断
2015/05/15 Javascript
Javascript实现的简单右键菜单类
2015/09/23 Javascript
页面内容排序插件jSort使用方法
2015/10/10 Javascript
Bootstrap每天必学之进度条
2015/11/30 Javascript
AngularJS仿苹果滑屏删除控件
2016/01/18 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
2016/08/31 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
angular分页指令操作
2017/01/09 Javascript
javascript判断回文数详解及实现代码
2017/02/03 Javascript
JavaScript中最常用的10种代码简写技巧总结
2017/06/28 Javascript
NodeJs实现定时任务的示例代码
2017/12/05 NodeJs
swiper动态改变滑动内容的实现方法
2018/01/17 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
vue2.0移动端滑动事件vue-touch的实例代码
2018/11/27 Javascript
ES6基础之展开语法(Spread syntax)
2019/02/21 Javascript
python检测远程udp端口是否打开的方法
2015/03/14 Python
Python实现输出程序执行进度百分比的方法
2017/09/16 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
2019/01/17 Python
基于python实现破解滑动验证码过程解析
2020/05/28 Python
浅析Python 抽象工厂模式的优缺点
2020/07/13 Python
捷克家具销售网站:SCONTO Nábytek
2020/01/02 全球购物
澳大利亚领先的在线药房:Pharmacy Online(有中文站)
2020/02/22 全球购物
英国专业美容产品在线:Mylee(从指甲到脱毛)
2020/07/06 全球购物
轻金属冶金专业毕业生自荐信
2013/11/02 职场文书
新闻传媒系求职信范文
2014/04/19 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书