实例分析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观察者模式
Oct 13 NodeJs
学习 NodeJS 第八天:Socket 通讯实例
Dec 21 NodeJs
详解如何在NodeJS项目中优雅的使用ES6
Apr 22 NodeJs
用Nodejs搭建服务器访问html、css、JS等静态资源文件
Apr 28 NodeJs
nodejs多版本管理总结
Apr 03 NodeJs
nodeJS模块简单用法示例
Apr 21 NodeJs
NodeJS 实现多语言的示例代码
Sep 11 NodeJs
Nodejs对postgresql基本操作的封装方法
Feb 20 NodeJs
nodejs中request库使用HTTPS代理的方法
Apr 30 NodeJs
nodejs文件夹深层复制功能
Sep 03 NodeJs
Nodejs实现图片上传、压缩预览、定时删除功能
Oct 25 NodeJs
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
Aug 20 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(3)
2006/10/09 PHP
php页面防重复提交方法总结
2013/11/25 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
2014/05/10 PHP
JavaScript Event学习第二章 Event浏览器兼容性
2010/02/07 Javascript
jquery实现手风琴效果实例代码
2013/11/15 Javascript
javaScript中的this示例学习详解及工作原理
2014/01/13 Javascript
一行命令搞定node.js 版本升级
2014/07/20 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
javascript的tab切换原理与效果实现方法
2015/01/10 Javascript
JavaScript事件委托实例分析
2015/05/26 Javascript
javascript禁止超链接跳转的方法
2016/02/02 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
2017/02/16 Javascript
浅谈React Native 中组件的生命周期
2017/09/08 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
Vue.js 中 axios 跨域访问错误问题及解决方法
2018/11/21 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
浅谈redux, koa, express 中间件实现对比解析
2019/05/23 Javascript
node中使用log4js4.x版本记录日志的方法
2019/08/20 Javascript
vue 判断元素内容是否超过宽度的方式
2020/07/29 Javascript
vue实现选中效果
2020/10/07 Javascript
python 七种邮件内容发送方法实例
2014/04/22 Python
python利用小波分析进行特征提取的实例
2019/01/09 Python
python生成大写32位uuid代码
2020/03/03 Python
CSS3提交意见输入框样式代码
2014/10/30 HTML / CSS
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
伦敦时尚生活的缩影:LN-CC
2017/01/24 全球购物
Camper鞋西班牙官方网上商店:西班牙马略卡岛的鞋类品牌
2019/03/14 全球购物
无故旷工检讨书
2014/01/26 职场文书
幼儿园大班教学反思
2014/02/10 职场文书
护士长2014年度工作总结
2014/11/11 职场文书
2014年乡镇工会工作总结
2014/12/02 职场文书
北京导游词
2015/02/12 职场文书
小数乘法教学反思
2016/02/22 职场文书
56句经典英文座右铭
2019/08/09 职场文书
Redis Lua脚本实现ip限流示例
2022/07/15 Redis