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学习笔记之(Url,QueryString,Path)模块
Jan 13 NodeJs
NodeJs基本语法和类型
Feb 13 NodeJs
使用nodejs开发cli项目实例
Jun 03 NodeJs
nodejs 中模拟实现 emmiter 自定义事件
Feb 22 NodeJs
nodejs实例解析(输出hello world)
Jan 03 NodeJs
详解NodeJs支付宝移动支付签名及验签
Jan 06 NodeJs
NodeJS爬虫实例之糗事百科
Dec 14 NodeJs
NodeJS 中Stream 的基本使用
Jul 30 NodeJs
NodeJS实现同步的方法
Mar 02 NodeJs
nodejs中实现用户注册路由功能
May 20 NodeJs
使用nodejs实现JSON文件自动转Excel的工具(推荐)
Jun 24 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
当年上海收录机产品生产,进口和价格情况
2021/03/04 无线电
php中的filesystem文件系统函数介绍及使用示例
2014/02/13 PHP
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
javascript的原生方法获取数组中的最大(最小)值
2012/12/19 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
2013/12/31 Javascript
seaJs的模块定义和模块加载浅析
2014/06/06 Javascript
nw.js实现类似微信的聊天软件
2015/03/16 Javascript
详解VueJs前后端分离跨域问题
2017/05/24 Javascript
vue.js组件vue-waterfall-easy实现瀑布流效果
2017/08/22 Javascript
基于require.js的使用(实例讲解)
2017/09/07 Javascript
Ionic学习日记实现验证码倒计时
2018/02/08 Javascript
Java设计中的Builder模式的介绍
2018/03/22 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
express express-session的使用小结
2018/12/12 Javascript
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
python 示例分享---逻辑推理编程解决八皇后
2014/07/20 Python
跟老齐学Python之画圈还不简单吗?
2014/09/20 Python
用pycharm开发django项目示例代码
2019/06/13 Python
python 使用opencv 把视频分割成图片示例
2019/12/12 Python
Python文件操作函数用法实例详解
2019/12/24 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
2020/04/20 Python
python中用ctypes模拟点击的实例讲解
2020/11/26 Python
大学生毕业求职的自我评价
2013/09/29 职场文书
工商管理系学生的自我评价分享
2013/11/29 职场文书
党的群众路线专项整治方案
2014/11/03 职场文书
2014年实验室工作总结
2014/12/03 职场文书
毕业生就业推荐表导师评语
2014/12/31 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
复兴之路纪录片观后感
2015/06/02 职场文书
关于运动会的宣传稿
2015/07/23 职场文书
2016年会领导致辞稿
2015/07/29 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
Mysql Show Profile
2021/04/05 MySQL
js中Map和Set的用法及区别实例详解
2022/02/15 Javascript
Python Numpy库的超详细教程
2022/04/06 Python