在一个项目中,用到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' } }

现在就变成一个字符串了。

【作者】曾健生

【QQ】190678908

【app后端qq群】254659220 

【微信公众号】 appbackend

【新浪微博】 @newjueqi

【博客】http://blog.csdn.net/newjueqi


版权声明:本文为博主原创文章,未经博主允许不得转载。

nodejs模块xml2js解析xml的坑的更多相关文章

  1. Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件,封装函数

    总结了一下使用Python对xml文件的解析,用到的模块儿如下: 分别从xml字符串和xml文件转换为xml对象,然后解析xml内容,查询指定信息字段. from xml.dom.minidom im ...

  2. [java开发篇][dom模块] 遍历解析xml

    http://blog.csdn.net/andie_guo/article/details/24844351 XML DOM节点树 XML DOM将XML文档作为树结构,树结构称为一个节点树.所有的 ...

  3. 【Java】Jackson解析xml的坑

    为了获取xml数据,在spring mvc中针对 @ResponseBody配置了jackson. 刚用的时候内心是狂喜的,终于不用自己解析了----  but----------还是有坑的-- 坑一 ...

  4. Python sax模块(SAX解析XML)

    XML样例: <?xml version="1.0"?> <collection shelf="New Arrivals"> <m ...

  5. python-minidom模块【解析xml】

    1,xml的文档结构 1.1,XML文档包括XML头信息和XML信息体 1.1.1,XML文档头信息 <?xml version="1.0" encoding="u ...

  6. 【TensorFlow】Python解析xml文件

    最近在项目中使用TensorFlow训练目标检测模型,在制作自己的数据集时使用了labelimg软件对图片进行标注,产生了VOC格式的数据,但标注生成的xml文件标签值难免会产生个别错误造成程序无法跑 ...

  7. python 解析 XML文件

    如下使用xml.etree.ElementTree模块来解析XML文件.ElementTree模块中提供了两个类用来完成这个目的: ElementTree表示整个XML文件(一个树形结构) Eleme ...

  8. Java和NodeJS解析XML对比

    Java解析XML 1.接收xml文件或者字符串,转为InputStream 2.使用DocumentBuilderFactory对象将InputStream转为document对象 Document ...

  9. python 解析XML python模块xml.dom解析xml实例代码

    分享下python中使用模块xml.dom解析xml文件的实例代码,学习下python解析xml文件的方法. 原文转自:http://www.jbxue.com/article/16587.html ...

随机推荐

  1. 深入理解JNI

    深入理解JNI 最近在学习android底层的一些东西,看了一些大神的博客,整体上有了一点把握,也产生了很多疑惑,于是再次把邓大神的深入系列翻出来仔细看看,下面主要是一些阅读笔记. JNI概述 JNI ...

  2. android studio比较长用的几款插件

    不懂安装studio插件,看参考博文:android stuido插件安装:http://blog.csdn.net/liang5630/article/details/46372447 1.Butt ...

  3. PHP获取指定地区的天气

    在开发网站的时候用到天气查询,由于是基于Wordpress的 所以有很多限制,先建一个[weather.php]的文件,然后看代码: <?php //获取天气 $url = 'http://m. ...

  4. navicat for mysql远程连接ubuntu服务器的mysql数据库

    经常玩服务器上的mysql数据库,但是基于linux操作Mysql多有不便,于是就想着使用GUI工具来远程操作mysql数据库.已经不是三次使用navicat-for-mysql了,但是每次连接远程服 ...

  5. dsd

    nodeName属性 nodeName属性规定节点的名称 nodeName是只读的 元素节点的nodeName与属性名相同 属性节点的nodeName与属性名相同 文本节点nodeName始终是#te ...

  6. CSS3实现多种背景效果

    灵活的背景定位 实现效果: 将背景图定位到距离容器底边 10px 且距离右边 20px 的位置. background-position 方案 实现代码: <div>海盗密码</di ...

  7. 做双网卡绑定_______物理机在双网卡的情况下做多IP绑定

    公司的环境是这样的: 一台物理机需要做双网卡绑定,同时呢,在双网卡绑定的同时还要做多IP. 其实整个过程可以分为两个步骤: 第一个,物理机先做双网卡. 第二个,在bond上做多IP实例. 双网卡绑定的 ...

  8. Java实现发送邮件(可配置)忘记密码,发送邮件

    学过Java基础的应该知道Java里有邮件这一块,不熟悉的话可以简单复习一下 本文章把发送邮件做为可配置可配置文件,这样方便以后维护 一.Maven依赖包 (发送邮件所依赖的jar包) <!-- ...

  9. LR性能测试结果样例分析

    http://www.cnblogs.com/hyzhou/archive/2011/11/16/2251316.html   测试结果分析 LoadRunner性能测试结果分析是个复杂的过程,通常可 ...

  10. windows10不能修改hosts解决方案(亲测)

    hosts文本解释: 有时候我们要破解一些软件与服务器通讯,所以通常都需要更改Hosts文件来达到目的,XP系统可以直接修改保存,但是Win10系统却提示没有权限去修改,那么我们要怎样办呢,我们修改的 ...