实例分析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 sublime text 3安装与配置
Jun 19 NodeJs
Google官方支持的NodeJS访问API,提供后台登录授权
Jul 29 NodeJs
nodejs下打包模块archiver详解
Dec 03 NodeJs
nodejs中实现路由功能
Dec 29 NodeJs
nodejs URL模块操作URL相关方法介绍
Mar 03 NodeJs
nodejs中使用多线程编程的方法实例
Mar 24 NodeJs
浅谈Nodejs应用主文件index.js
Aug 28 NodeJs
Highcharts+NodeJS搭建数据可视化平台示例
Jan 01 NodeJs
nodejs学习笔记之路由
Mar 27 NodeJs
NodeJS实现不可逆加密与密码密文保存的方法
Mar 16 NodeJs
nodejs 日志模块winston的使用方法
May 02 NodeJs
nodejs使用Sequelize框架操作数据库的实现
Oct 21 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
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
2013/02/06 PHP
php表单处理操作
2017/11/16 PHP
PHP使用SOAP调用API操作示例
2018/12/25 PHP
用htc组件制作windows选项卡
2007/01/13 Javascript
JavaScript修改css样式style
2008/04/15 Javascript
Prototype String对象 学习
2009/07/19 Javascript
用js获取电脑信息(是使用与IE浏览器)
2013/01/15 Javascript
node.js中的fs.truncate方法使用说明
2014/12/15 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
javascript设计模式Constructor(构造器)模式
2016/08/19 Javascript
angularjs中的$eval方法详解
2017/04/24 Javascript
JS/jQuery实现DIV延时几秒后消失或显示的方法
2018/02/12 jQuery
Vue实现搜索 和新闻列表功能简单范例
2018/03/16 Javascript
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
2019/04/18 Javascript
vue+ESLint 配置保存 自动格式化代码
2020/03/17 Javascript
jQuery 动态粒子效果示例代码
2020/07/07 jQuery
解决vue addRoutes不生效问题
2020/08/04 Javascript
详解vue 组件注册
2020/11/20 Vue.js
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
Python用zip函数同时遍历多个迭代器示例详解
2016/11/14 Python
Python 迭代器与生成器实例详解
2017/05/18 Python
Django rest framework基本介绍与代码示例
2018/01/26 Python
python 输出所有大小写字母的方法
2019/01/02 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
Pyinstaller打包.py生成.exe的方法和报错总结
2019/04/02 Python
使用python打印十行杨辉三角过程详解
2019/07/10 Python
通过python实现随机交换礼物程序详解
2019/07/10 Python
django 中QuerySet特性功能详解
2019/07/25 Python
Django项目后台不挂断运行的方法
2019/08/31 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
2014/07/17 面试题
酷瑞网络科技面试题
2012/03/30 面试题
12.4全国法制宣传日活动方案
2014/11/02 职场文书
求职导师推荐信范文
2015/03/27 职场文书
隐形的翅膀观后感
2015/06/10 职场文书
解决mysql的int型主键自增问题
2021/07/15 MySQL