实例分析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中启用ECMAScript 6小结(windos以及Linux)
Jul 15 NodeJs
Nodejs极简入门教程(二):定时器
Oct 25 NodeJs
Nodejs express框架一个工程中同时使用ejs模版和jade模版
Dec 28 NodeJs
nodejs redis 发布订阅机制封装实现方法及实例代码
Dec 15 NodeJs
用nodeJS搭建本地文件服务器的几种方法小结
Mar 16 NodeJs
NodeJS基础API搭建服务器详细过程记录
Apr 01 NodeJs
详解nodejs微信公众号开发——1.接入微信公众号
Apr 10 NodeJs
nodejs socket服务端和客户端简单通信功能
Sep 14 NodeJs
nodejs操作mongodb的填删改查模块的制作及引入实例
Jan 02 NodeJs
nodejs读取图片返回给浏览器显示
Jul 25 NodeJs
nodejs实现UDP组播示例方法
Nov 04 NodeJs
在nodejs中创建child process的方法
Jan 26 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获得当前的脚本网址
2007/12/10 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
主流PHP框架的优缺点对比分析
2014/12/25 PHP
如何修改yii2.0自带的user表为其它的表
2017/08/01 PHP
jquery select选中的一个小问题
2009/10/11 Javascript
再谈ie和firefox下的document.all属性
2009/10/21 Javascript
JS焦点图切换,上下翻转
2011/05/12 Javascript
jQuery效果 slideToggle() 方法(在隐藏和显示之间切换)
2011/06/28 Javascript
Jquery带搜索框的下拉菜单
2013/05/06 Javascript
JavaScript获取某年某月的最后一天附截图
2014/06/23 Javascript
js实现遍历含有input的table实例
2015/12/07 Javascript
vue中如何创建多个ueditor实例教程
2017/11/14 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
node内置调试方法总结
2018/02/22 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
2019/06/19 Javascript
JavaScript动态添加数据到表单并提交的几种方式
2019/06/26 Javascript
微信小程序实现watch监听
2020/06/04 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
原生JavaScript实现换肤
2021/02/19 Javascript
Python 探针的实现原理
2016/04/23 Python
Python简单读写Xls格式文档的方法示例
2018/08/17 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
Django中ORM外键和表的关系详解
2019/05/20 Python
python识别文字(基于tesseract)代码实例
2019/08/24 Python
Python数据分析模块pandas用法详解
2019/09/04 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
在tensorflow中实现屏蔽输出的log信息
2020/02/04 Python
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
美国礼品卡交易网站:Cardpool
2018/08/27 全球购物
eBay爱尔兰站:eBay.ie
2019/08/09 全球购物
优秀毕业生求职推荐信范文
2013/11/21 职场文书
程序员求职信
2014/04/16 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
辩护意见书
2015/06/04 职场文书
Ruby序列化和持久化存储 Marshal和Pstore介绍
2022/04/18 Ruby
win7配置本地ftp服务器的图文教程
2022/08/05 Servers