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的require模块(文件模块/核心模块)及路径介绍
Jan 14 NodeJs
nodejs npm包管理的配置方法及常用命令介绍
Jun 05 NodeJs
Windows系统下使用Sublime搭建nodejs环境
Apr 13 NodeJs
Nodejs初级阶段之express
Nov 23 NodeJs
nodejs如何获取时间戳与时间差
Aug 03 NodeJs
nodejs微信公众号支付开发
Sep 19 NodeJs
NodeJs读取JSON文件格式化时的注意事项
Sep 25 NodeJs
nodejs集成sqlite使用示例
Jun 05 NodeJs
基于nodejs实现微信支付功能
Dec 20 NodeJs
nodejs调取微信收货地址的方法
Dec 20 NodeJs
NodeJS简单实现WebSocket功能示例
Feb 10 NodeJs
nodejs 生成和导出 word的实例代码
Jul 31 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防注
2007/01/15 PHP
用PHP写的基于Memcache的Queue实现代码
2011/11/27 PHP
php的GD库imagettftext函数解决中文乱码问题
2015/01/24 PHP
php用ini_get获取php.ini里变量值的方法
2015/03/04 PHP
Codeigniter校验ip地址的方法
2015/03/21 PHP
Joomla简单判断用户是否登录的方法
2016/05/04 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
2017/10/19 PHP
基础的prototype.js常用函数及其用法
2007/03/10 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
js判断undefined类型示例代码
2014/02/10 Javascript
如何将网页表格内容导入excel
2014/02/18 Javascript
JS中处理时间之setUTCMinutes()方法的使用
2015/06/12 Javascript
分享12个非常实用的JavaScript小技巧
2016/05/11 Javascript
Bootstrap Table使用方法详解
2016/08/01 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
2017/03/01 Javascript
详解Vue中状态管理Vuex
2017/05/11 Javascript
vue.js移动端tab组件的封装实践实例
2017/06/30 Javascript
react以create-react-app为基础创建项目
2018/03/14 Javascript
javascript canvas实现简易时钟例子
2020/09/05 Javascript
ant design vue datepicker日期选择器中文化操作
2020/10/28 Javascript
原生js 实现表单验证功能
2021/02/08 Javascript
python中的闭包用法实例详解
2015/05/05 Python
Python3处理文件中每个词的方法
2015/05/22 Python
说一说Python logging
2016/04/15 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
Python实现合并excel表格的方法分析
2019/04/13 Python
django基础学习之send_mail功能
2019/08/07 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
django商品分类及商品数据建模实例详解
2020/01/03 Python
大一新生学期自我评价
2014/04/09 职场文书
小学数学课题方案
2014/06/15 职场文书
十佳标兵事迹材料
2014/08/18 职场文书
消防隐患整改通知书
2015/04/22 职场文书
严以律己专题学习研讨会发言材料
2015/11/09 职场文书
python常见的占位符总结及用法
2021/07/02 Python