实例分析nodejs模块xml2js解析xml过程中遇到的坑

转载  2017-03-18   作者:newjueqi   我要评论

这篇文章主要介绍了实例分析nodejs模块xml2js解析xml过程中遇到的坑,涉及nodejs模块xml2js解析xml过程中parseString方法参数使用技巧,需要的朋友可以参考下

本文实例讲述了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' } }

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

PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:

在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson

在线格式化XML/在线压缩XML
http://tools.jb51.net/code/xmlformat

XML在线压缩/格式化工具:
http://tools.jb51.net/code/xml_format_compress

XML代码在线格式化美化工具:
http://tools.jb51.net/code/xmlcodeformat

希望本文所述对大家nodejs程序设计有所帮助。

相关文章

  • nodejs下打包模块archiver详解

    nodejs下打包模块archiver详解

    这篇文章主要介绍了nodejs下打包模块archiver的使用方法,非常简单实用,这里推荐给有需要的小伙伴。
    2014-12-12
  • 解析NodeJS异步I/O的实现

    解析NodeJS异步I/O的实现

    本篇文章主要介绍了解析NodeJS异步I/O的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • 详解NodeJs支付宝移动支付签名及验签

    详解NodeJs支付宝移动支付签名及验签

    本文主要介绍了NodeJs支付宝移动支付签名及验签的方法,具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • 关于在mongoose中填充外键的方法详解

    关于在mongoose中填充外键的方法详解

    在学习非关系型数据库mongoDB,希望能够完成数据库的CRUD,采用的是JS做的后台,因此用到了mongoose,下面这篇文章主要给大家介绍了关于在mongoose中填充外键的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-08-08
  • 全面解析Node.js 8 重要功能和修复

    全面解析Node.js 8 重要功能和修复

    5月30日12点,Node.js 8正式发布了,这个版本具有一系列新功能和性能改进,并且这些功能和改进将获得长期支持(LTS)。下面就来介绍Node.js 8版本中最重要的功能和修复
    2017-06-06
  • 基于豆瓣API+Angular开发的web App

    基于豆瓣API+Angular开发的web App

    这篇文章主要介绍了基于豆瓣API+Angular开发的web App的方法和示例代码,效果非常棒,有需要的小伙伴参考下
    2015-01-01
  • Node.js使用Express创建Web项目详细教程

    Node.js使用Express创建Web项目详细教程

    如果需要入门使用node.js进行web开发,正在学习 nodejs web开发指南 的和想快速了解node.js web开发模式的朋友,相信本文是有一定帮助意义的。
    2017-03-03
  • node.js基础知识小结

    node.js基础知识小结

    本文给大家汇总介绍了学习node.js的一些关于开发环境的基础知识,非常简单,给新手们参考下
    2018-02-02
  • Node.js开发者必须了解的4个JS要点

    Node.js开发者必须了解的4个JS要点

    这篇文章主要介绍了Node.js开发者必须了解的4个JS要点,Node.js是一个面向服务器的框架,立足于Chrome强大的V8 JS引擎。尽管它由C++编写而成,但是它及其应用是运行在JS上的,需要的朋友可以参考下
    2016-02-02
  • Egret引擎开发指南之编译项目

    Egret引擎开发指南之编译项目

    Egret框架是一个基于MIT开源协议许可的永久免费的项目!你可以在项目中随意使用且修改它,并且拥有100%的控制权。你可以从Egret的Github网站获取它的源代码,从而了解和学习它的核心细节。Egret具有完善的文档,并且易于上手学习,可以让你更容易专注于游戏本身的开发
    2014-09-09

最新评论