实例分析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 相关文章推荐
golang、python、php、c++、c、java、Nodejs性能对比
Mar 12 NodeJs
NodeJS学习笔记之网络编程
Aug 03 NodeJs
nodejs中简单实现Javascript Promise机制的实例
Dec 06 NodeJs
NodeJS学习笔记之FS文件模块
Jan 13 NodeJs
nodejs搭建本地http服务器教程
Mar 13 NodeJs
nodejs6下使用koa2框架实例
May 18 NodeJs
docker中编译nodejs并使用nginx启动
Jun 23 NodeJs
Nodejs进阶之服务端字符编解码和乱码处理
Sep 04 NodeJs
NodeJS安装图文教程
Apr 19 NodeJs
Nodejs Express 通过log4js写日志到Logstash(ELK)
Aug 30 NodeJs
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
Nov 01 NodeJs
nodejs中实现修改用户路由功能
May 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
当年上海收录机产品生产,进口和价格情况
2021/03/04 无线电
php+mysql实现简单登录注册修改密码网页
2016/11/30 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
php微信分享到朋友圈、QQ、朋友、微博
2019/02/18 PHP
jQuery使用手册之二 DOM操作
2007/03/24 Javascript
JQuery之拖拽插件实现代码
2011/04/14 Javascript
JQuery UI的拖拽功能实现方法小结
2012/03/14 Javascript
javascript时间函数大全
2014/06/30 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
js实现网页抽奖实例
2015/08/05 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
2016/01/08 Javascript
Javascript中的几种继承方式对比分析
2016/03/22 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
2016/12/21 Javascript
jquery判断滚动条距离顶部的距离方法
2018/09/05 jQuery
vue实现数据控制视图的原理解析
2020/01/07 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
2020/11/17 Javascript
[03:10]2014DOTA2 TI马来劲旅Titan首战告捷目标只是8强
2014/07/10 DOTA
[52:00]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs Optic
2018/04/02 DOTA
Python实现的批量下载RFC文档
2015/03/10 Python
利用Python批量生成任意尺寸的图片
2016/08/29 Python
python探索之BaseHTTPServer-实现Web服务器介绍
2017/10/28 Python
Python遍历文件夹 处理json文件的方法
2019/01/22 Python
如何通过50行Python代码获取公众号全部文章
2019/07/12 Python
基于Python的接口自动化读写excel文件的方法
2021/01/15 Python
真正了解CSS3背景下的@font face规则
2017/05/04 HTML / CSS
英国航空官网:British Airways
2016/09/11 全球购物
音乐学个人的自荐书范文
2013/11/26 职场文书
校园奶茶店创业计划书
2014/01/23 职场文书
服装设计专业自荐信
2014/06/17 职场文书
2014年审计人员工作总结
2014/12/19 职场文书
检讨书大全
2015/01/27 职场文书
会计岗位职责范本
2015/04/02 职场文书
银行稽核岗位职责
2015/04/13 职场文书
《詹天佑》教学反思
2016/02/20 职场文书
Java字符串逆序方法详情
2022/03/21 Java/Android
详解OpenCV曝光融合
2022/04/29 Python