nodejs实现解析xml字符串为对象的方法示例


Posted in NodeJs onMarch 14, 2018

本文实例讲述了nodejs实现解析xml字符串为对象的方法。分享给大家供大家参考,具体如下:

var xmlreader = require("xmlreader");
var fs = require("fs");
var xml_string = '<response id="1" shop="aldi">'
      +    'This is some other content'
      +    '<who name="james">James May</who>'
      +    '<who name="sam">'
      +      'Sam Decrock'
      +      '<location>Belgium</location>'
      +    '</who>'
      +    '<who name="jack">Jack Johnsen</who>'
      +    '<games age="6">'
      +      '<game>Some great game</game>'
      +      '<game>Some other great game</game>'
      +    '</games>'
      +    '<note>These are some notes</note>'
      +  '</response>';
xmlreader.read(xml_string, function(errors, response){
  if(null !== errors ){
    console.log(errors)
    return;
  }
  console.log( response.response );
  console.log( response.response.text() );
});

没啥新奇的,看看输出吧

第一句输出结果为:

{
  attributes : [Function],
  parent : [Function],
  count : [Function],
  at : [Function],
  each : [Function],
  text : [Function],
  who : {
    array : [[Object], [Object], [Object]],
    count : [Function],
    at : [Function],
    each : [Function]
  },
  games : {
    attributes : [Function],
    parent : [Function],
    count : [Function],
    at : [Function],
    each : [Function],
    game : {
      array : [Object],
      count : [Function],
      at : [Function],
      each : [Function]
    }
  },
  note : {
    attributes : [Function],
    parent : [Function],
    count : [Function],
    at : [Function],
    each : [Function],
    text : [Function]
  }
}

第二句输出:

This is some other content

根据输出我们就可以猜这东西是怎么回事儿了。

1、xmlreader将xml转换为JSON对象(这样表述不准确,但是大家知道怎么一回事儿)。
2、转换成的JSON对象的嵌套结构与原xml标签嵌套结构相同。
3、视xml中同一级别出现某标签次数不同(一次和多次)生出不同的对应对象,如上的node为一次,who为三次。
4、提供了一下函数供操作属性或者遍历等等。

各方法含义:

1、attributes:获取所有属性。
2、parent:获取父节点。
3、count:获取数目。
4、at:获取下标为指定值的节点。
5、each:遍历,参数为一个函数。
6、text:获取节点内的文本,仅当前节点的文本,不包含子节点的文本。

NodeJs 相关文章推荐
nodejs入门详解(多篇文章结合)
Mar 07 NodeJs
Nodejs极简入门教程(一):模块机制
Oct 25 NodeJs
深入浅析NodeJs并发异步的回调处理
Dec 21 NodeJs
nodeJs爬虫获取数据简单实现代码
Mar 29 NodeJs
详解nodejs 文本操作模块-fs模块(一)
Dec 22 NodeJs
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
Jan 12 NodeJs
详解nodejs中exports和module.exports的区别
Feb 17 NodeJs
解析NodeJS异步I/O的实现
Apr 13 NodeJs
nodejs中密码加密处理操作详解
Mar 20 NodeJs
利用nodeJs anywhere搭建本地服务器环境的方法
May 12 NodeJs
Nodejs使用Mongodb存储与提供后端CRD服务详解
Sep 04 NodeJs
Nodejs实现WebSocket代码实例
May 19 NodeJs
nodejs acl的用户权限管理详解
Mar 14 #NodeJs
nodejs爬虫初试superagent和cheerio
Mar 05 #NodeJs
Nodejs模块载入运行原理
Feb 23 #NodeJs
Nodejs下使用gm圆形裁剪并合成图片的示例
Feb 22 #NodeJs
nodejs微信扫码支付功能实现
Feb 17 #NodeJs
nodejs+express搭建多人聊天室步骤
Feb 12 #NodeJs
nodeJs实现基于连接池连接mysql的方法示例
Feb 10 #NodeJs
You might like
让PHP COOKIE立即生效,不用刷新就可以使用
2011/03/09 PHP
php新建文件自动编号的思路与实现
2011/06/27 PHP
基于PHP服务端图片生成缩略图的方法详解
2013/06/20 PHP
php的ddos攻击解决方法
2015/01/08 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
2015/05/13 PHP
基于PHP技术开发客服工单系统
2016/01/06 PHP
Js获取数组最大和最小值示例代码
2013/10/29 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
2014/10/17 Javascript
用JavaScript实现对话框的教程
2015/06/04 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
关于session和cookie的简单理解
2016/06/08 Javascript
jQuery实现frame之间互通的方法
2017/06/26 jQuery
基于对象合并功能的实现示例
2017/10/10 Javascript
如何抽象一个Vue公共组件
2017/10/17 Javascript
微信小程序实现留言板功能
2018/11/02 Javascript
微信小程序实现动态显示和隐藏某个控件功能示例
2018/12/14 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
Vue解析剪切板图片并实现发送功能
2020/02/04 Javascript
Vue如何基于vue-i18n实现多国语言兼容
2020/07/17 Javascript
[02:07]DOTA2超级联赛专访BBC:难忘网吧超神经历
2013/06/09 DOTA
[31:01]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS Orenda
2014/05/23 DOTA
[03:24]CDEC.Y赛前采访 努力备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
[00:32]2018DOTA2亚洲邀请赛Secret出场
2018/04/03 DOTA
详解使用Python下载文件的几种方法
2019/10/13 Python
Python读取YAML文件过程详解
2019/12/30 Python
django商品分类及商品数据建模实例详解
2020/01/03 Python
Python实现ATM系统
2020/02/17 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
Python如何把字典写入到CSV文件的方法示例
2020/08/23 Python
pip install命令安装扩展库整理
2021/03/02 Python
益模软件Java笔试题
2012/03/27 面试题
在职研究生自我鉴定
2013/10/16 职场文书
优秀中专生推荐信
2013/11/17 职场文书
十八届三中全会学习方案
2014/02/16 职场文书
使用CSS连接数据库的方式
2022/02/28 HTML / CSS