实例分析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 相关文章推荐
14款NodeJS Web框架推荐
Jul 11 NodeJs
nodejs中操作mysql数据库示例
Dec 20 NodeJs
Nodejs实战心得之eventproxy模块控制并发
Oct 27 NodeJs
NodeJS整合银联网关支付(DEMO)
Nov 09 NodeJs
详谈Angular路由与Nodejs路由的区别
Mar 05 NodeJs
深入nodejs中流(stream)的理解
Mar 27 NodeJs
详解nodeJS之二进制buffer对象
Jun 03 NodeJs
nodeJs实现基于连接池连接mysql的方法示例
Feb 10 NodeJs
nodejs中express入门和基础知识点学习
Sep 13 NodeJs
Nodejs中的require函数的具体使用方法
Apr 02 NodeJs
NodeJS配置CORS实现过程详解
Dec 02 NodeJs
浅谈Node的内存泄露问题
May 06 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
全国FM电台频率大全 - 8 黑龙江省
2020/03/11 无线电
php注册和登录界面的实现案例(推荐)
2016/10/24 PHP
php实现文件预览功能
2017/05/23 PHP
php-msf源码详解
2017/12/25 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
WordPress伪静态规则设置代码实例
2020/12/10 PHP
用js判断浏览器是否是IE的比较好的办法
2007/05/08 Javascript
IE下js调试工具Companion.JS
2010/10/15 Javascript
事件绑定之小测试  onclick &amp;&amp; addEventListener
2011/07/31 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
JavaScript前端图片加载管理器imagepool使用详解
2014/12/29 Javascript
浅谈被jQuery抛弃的函数及替代函数
2015/05/03 Javascript
微信小程序 详解Page中data数据操作和函数调用
2017/01/12 Javascript
JQuery查找子元素find()和遍历集合each的方法总结
2017/03/07 Javascript
微信小程序多列选择器range-key使用详解
2020/03/30 Javascript
详谈Node.js之操作文件系统
2017/08/29 Javascript
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
微信小程序点餐系统开发常见问题汇总
2019/08/06 Javascript
vue实现文件上传读取及下载功能
2020/11/17 Javascript
原生js实现html手机端城市列表索引选择城市
2020/06/24 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
[02:44]完美大师赛主赛事淘汰赛第二日观众采访
2017/11/24 DOTA
八大排序算法的Python实现
2021/01/28 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
2020/05/26 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
MATCHESFASHION.COM美国官网:英国奢侈品零售商
2018/10/29 全球购物
Myprotein意大利官网:欧洲第一运动营养品牌
2018/11/22 全球购物
诺思信科技(南京)有限公司.NET笔试题答案
2013/07/06 面试题
大学生年度自我鉴定
2013/10/31 职场文书
司机职责范本
2014/03/08 职场文书
视光学专业自荐信
2014/06/24 职场文书
教师见习报告范文
2014/11/03 职场文书
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
2022/04/13 Java/Android