实例分析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使用mysql模块之获得更新和删除影响的行数的方法
Mar 18 NodeJs
Nodejs进程管理模块forever详解
Jun 01 NodeJs
nodejs导出excel的方法
Jun 30 NodeJs
nodejs微信公众号支付开发
Sep 19 NodeJs
NodeJs读取JSON文件格式化时的注意事项
Sep 25 NodeJs
nodejs读写json文件的简单方法(必看)
Mar 09 NodeJs
详解nodejs中的process进程
Mar 19 NodeJs
Ajax异步文件上传与NodeJS express服务端处理
Apr 01 NodeJs
Nodejs搭建wss服务器教程
May 24 NodeJs
nodejs高大上的部署方式(PM2)
Sep 11 NodeJs
深入理解NodeJS 多进程和集群
Oct 17 NodeJs
nodejs制作小爬虫功能示例
Feb 24 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下过滤HTML代码的函数
2007/12/10 PHP
php面向对象全攻略 (十四) php5接口技术
2009/09/30 PHP
解密ThinkPHP3.1.2版本之独立分组功能应用
2014/06/19 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
PHP实现简单数字分页效果
2015/07/26 PHP
Yii 2中的load()和save()示例详解
2017/08/03 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
js播放wav文件(源码)
2013/04/22 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
分享javascript计算时间差的示例代码
2020/03/19 Javascript
JS获得一个对象的所有属性和方法实例
2017/02/21 Javascript
微信小程序App生命周期详解
2018/01/31 Javascript
浅谈vue项目如何打包扔向服务器
2018/05/08 Javascript
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
2019/04/09 Javascript
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
python3.6使用pymysql连接Mysql数据库
2018/05/25 Python
Python反射和内置方法重写操作详解
2018/08/27 Python
Python global全局变量函数详解
2018/09/18 Python
django 外键model的互相读取方法
2018/12/15 Python
Python实现连接MySql数据库及增删改查操作详解
2019/04/16 Python
python用requests实现http请求代码实例
2019/10/31 Python
python集合能干吗
2020/07/19 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
购买限量版收藏品、珠宝和礼品:Bradford Exchange
2016/09/23 全球购物
销售文员的岗位职责
2013/11/20 职场文书
回门宴新郎答谢词
2014/01/12 职场文书
关工委先进个人事迹材料
2014/05/23 职场文书
2014年最新版离婚协议书范本
2014/11/25 职场文书
受资助学生感谢信
2015/01/21 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
导游词之新疆尼雅遗址
2019/10/16 职场文书
HTML中的表单Form实现居中效果
2021/05/25 HTML / CSS
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android