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 相关文章推荐
Google官方支持的NodeJS访问API,提供后台登录授权
Jul 29 NodeJs
ubuntu下安装nodejs以及升级的办法
May 08 NodeJs
windows 下安装nodejs 环境变量设置
Feb 02 NodeJs
NodeJS配置HTTPS服务实例分享
Feb 19 NodeJs
nodejs个人博客开发第六步 数据分页
Apr 12 NodeJs
nodejs结合socket.io实现websocket通信功能的方法
Jan 12 NodeJs
Linux Centos7.2下安装nodejs&amp;npm配置全局路径的教程
May 15 NodeJs
nodejs中用npm初始化来创建package.json的实例讲解
Oct 10 NodeJs
nodejs实现用户登录路由功能
May 22 NodeJs
监控Nodejs的性能实例代码
Jul 02 NodeJs
纯异步nodejs文件夹(目录)复制功能
Sep 03 NodeJs
nodejs各种姿势断点调试的方法
Jun 18 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生成便于打印的网页
2006/10/09 PHP
第十一节--重载
2006/11/16 PHP
WordPress中重置文章循环的rewind_posts()函数讲解
2016/01/11 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
2019/06/12 PHP
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
jQuery入门问答 整理的几个常见的初学者问题
2010/02/22 Javascript
javascript中的对象创建 实例附注释
2011/02/08 Javascript
jQuery中live方法的重复绑定说明
2011/10/21 Javascript
jquery分析文本里url或邮件地址为真实链接的方法
2015/06/20 Javascript
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
2016/02/17 Javascript
深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解
2016/04/03 Javascript
vue实现nav导航栏的方法
2017/12/13 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
2018/03/14 Javascript
判断js数据类型的函数实例详解
2019/05/23 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
2019/09/20 Javascript
vue视频播放暂停代码
2019/11/08 Javascript
详解Howler.js Web音频播放终极解决方案
2020/08/23 Javascript
Python获取apk文件URL地址实例
2013/11/01 Python
python实现端口转发器的方法
2015/03/13 Python
python利用lxml读写xml格式的文件
2017/08/10 Python
pygame实现雷电游戏雏形开发
2018/11/20 Python
一步步教你用python的scrapy编写一个爬虫
2019/04/17 Python
pandas读取CSV文件时查看修改各列的数据类型格式
2019/07/07 Python
python基础 range的用法解析
2019/08/23 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
pandas中的ExcelWriter和ExcelFile的实现方法
2020/04/24 Python
运动会通讯稿400字
2014/01/28 职场文书
2014村务公开实施方案
2014/02/25 职场文书
公证书标准格式
2014/04/10 职场文书
小学优秀班主任事迹材料
2014/05/17 职场文书
艺术学院毕业生求职信
2014/07/09 职场文书
2014幼儿园教育教学工作总结
2014/12/17 职场文书
新生入学欢迎词
2015/01/26 职场文书
校运会新闻稿
2015/07/17 职场文书