实例分析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中启用ECMAScript 6小结(windos以及Linux)
Jul 15 NodeJs
Nodejs实现多人同时在线移动鼠标的小游戏分享
Dec 06 NodeJs
浅析nodejs实现Websocket的数据接收与发送
Nov 19 NodeJs
Nodejs中解决cluster模块的多进程如何共享数据问题
Nov 10 NodeJs
详解nodejs 文本操作模块-fs模块(二)
Dec 22 NodeJs
windows 下安装nodejs 环境变量设置
Feb 02 NodeJs
nodejs连接mysql数据库简单封装示例-mysql模块
Apr 10 NodeJs
详解Nodejs 通过 fs.createWriteStream 保存文件
Oct 10 NodeJs
原生nodejs使用websocket代码分享
Apr 07 NodeJs
nodejs+koa2 实现模仿springMVC框架
Oct 21 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/06/14 PHP
php错误、异常处理机制(补充)
2012/05/07 PHP
php判断页面是否是微信打开的示例(微信打开网页)
2014/04/25 PHP
PHP的魔术常量__METHOD__简介
2014/07/08 PHP
PHP微信红包生成代码分享
2016/10/06 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
2018/04/04 PHP
关于JavaScript的gzip静态压缩方法
2007/01/05 Javascript
BOM与DOM的区别分析
2010/10/26 Javascript
JavaScript中伪协议 javascript:使用探讨
2014/07/18 Javascript
JavaScript实现16进制颜色值转RGB的方法
2015/02/09 Javascript
详解Vue.js动态绑定class
2016/12/20 Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
Python 编码规范(Google Python Style Guide)
2018/05/05 Python
在cmd中运行.py文件: python的操作步骤
2018/05/12 Python
python实现两个字典合并,两个list合并
2019/12/02 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
2020/06/02 Python
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
校园创业策划书
2014/01/14 职场文书
三八节主持词
2014/03/17 职场文书
精彩的广告词
2014/03/19 职场文书
库房保管员岗位职责
2014/04/07 职场文书
消防安全承诺书
2014/05/22 职场文书
幼儿园运动会口号
2014/06/07 职场文书
党员演讲稿
2014/09/04 职场文书
佛光寺导游词
2015/02/10 职场文书
公司财务经理岗位职责
2015/04/08 职场文书
2015年科协工作总结
2015/05/19 职场文书
解除合同协议书范本
2016/03/21 职场文书
粗暴解决CUDA out of memory的问题
2021/05/22 Python
ObjectMapper 如何忽略字段大小写
2021/06/29 Java/Android
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js
springboot读取resources下文件的方式详解
2022/06/21 Java/Android