实例分析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 相关文章推荐
使用upstart把nodejs应用封装为系统服务实例
Jun 01 NodeJs
nodejs教程之制作一个简单的文章发布系统
Nov 21 NodeJs
nodejs中实现路由功能
Dec 29 NodeJs
nodejs批量修改文件编码格式
Jan 22 NodeJs
Nodejs进阶:基于express+multer的文件上传实例
Nov 21 NodeJs
详解nodeJS中读写文件方法的区别
Mar 06 NodeJs
NodeJS 实现手机短信验证模块阿里大于功能
Jun 19 NodeJs
nodejs 使用 js 模块的方法实例详解
Dec 04 NodeJs
nodejs二进制与Buffer的介绍与使用
Jul 11 NodeJs
5分钟教你用nodeJS手写一个mock数据服务器的方法
Sep 10 NodeJs
NodeJS实现一个聊天室功能
Nov 25 NodeJs
nodejs利用readline提示输入内容实例代码
Jul 15 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提示undefined index的几种解决方法
2012/05/21 PHP
十大使用PHP框架的理由
2015/09/26 PHP
Symfony2 session用法实例分析
2016/02/04 PHP
PHP观察者模式原理与简单实现方法示例
2017/08/25 PHP
实例分析基于PHP微信网页获取用户信息
2017/11/24 PHP
简单的无缝滚动程序-仅几行代码
2007/05/08 Javascript
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 简史
2015/01/09 Javascript
原生JavaScript编写俄罗斯方块
2015/03/30 Javascript
给Easyui-Datebox设置隐藏或者不可用的解决方法
2017/05/26 Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
2017/09/12 Javascript
关于jquery中attr()和prop()方法的区别
2018/05/28 jQuery
vue 解决循环引用组件报错的问题
2018/09/06 Javascript
vue中 this.$set的用法详解
2019/09/06 Javascript
[37:23]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第二局
2016/03/04 DOTA
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
Python for Informatics 第11章之正则表达式(四)
2016/04/21 Python
pandas DataFrame实现几列数据合并成为新的一列方法
2018/06/08 Python
Python实现的特征提取操作示例
2018/12/03 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
基于python实现操作git过程代码解析
2020/07/27 Python
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
中东奢侈品购物网站:Ounass
2020/09/02 全球购物
房地产出纳岗位职责
2013/12/01 职场文书
交通违章检讨书
2014/09/21 职场文书
2014年幼儿园教学工作总结
2014/12/04 职场文书
小学五年级语文上册教学计划
2015/01/22 职场文书
2015年重阳节活动总结
2015/03/24 职场文书
关爱空巢老人感想
2015/08/11 职场文书
初中数学课堂教学反思
2016/02/17 职场文书
css3 filter属性的使用简介
2021/03/31 HTML / CSS
python实现socket简单通信的示例代码
2021/04/13 Python
Apache Hudi数据布局黑科技降低一半查询时间
2022/03/31 Servers
vue el-table实现递归嵌套的示例代码
2022/08/14 Vue.js