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学习笔记之Global Objects全局对象
Jan 13 NodeJs
nodejs实现bigpipe异步加载页面方案
Jan 26 NodeJs
Nodejs全局安装和本地安装的不同之处
Jul 04 NodeJs
nodejs加密Crypto的实例代码
Jul 07 NodeJs
nodejs连接mongodb数据库实现增删改查
Dec 01 NodeJs
NodeJS基础API搭建服务器详细过程记录
Apr 01 NodeJs
nodejs入门教程一:概念与用法简介
Apr 24 NodeJs
Nodejs实现多房间简易聊天室功能
Jun 20 NodeJs
nodejs 图解express+supervisor+ejs的用法(推荐)
Sep 08 NodeJs
nodejs+mongodb aggregate级联查询操作示例
Mar 17 NodeJs
Nodejs中怎么实现函数的串行执行
Mar 02 NodeJs
nodejs中内置模块fs,path常见的用法说明
Nov 07 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
漫荒推荐:画风超赞的国风漫画推荐 超长假期不无聊
2020/03/08 国漫
PHP中路径问题的解决方案
2006/10/09 PHP
php实现的遍历文件夹下所有文件,编辑删除
2010/01/05 PHP
改进:论坛UBB代码自动插入方式
2006/12/22 Javascript
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
基于jquery 的一个progressbar widge
2010/10/29 Javascript
jquery的ajax()函数传值中文乱码解决方法介绍
2012/11/08 Javascript
框架页面高度自动刷新的Javascript脚本
2013/11/01 Javascript
javascript右下角弹层及自动隐藏(自己编写)
2013/11/20 Javascript
js调试系列 断点与动态调试[基础篇]
2014/06/18 Javascript
jQuery通过扩展实现抖动效果的方法
2015/03/11 Javascript
javascript实现Table间隔色以及选择高亮(和动态切换数据)的方法
2015/05/14 Javascript
探索angularjs+requirejs全面实现按需加载的套路
2016/02/26 Javascript
Easyui 之 Treegrid 笔记
2016/04/29 Javascript
DOM操作和jQuery实现选项移动操作的简单实例
2016/06/07 Javascript
Js调用Java方法并互相传参的简单实例
2016/08/11 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
2017/10/24 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
vue柱状进度条图像的完美实现方案
2019/08/26 Javascript
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
总结Python编程中函数的使用要点
2016/03/20 Python
Python 比较两个数组的元素的异同方法
2017/08/17 Python
pandas进行数据的交集与并集方式的数据合并方法
2018/06/27 Python
Python中三元表达式的几种写法介绍
2019/03/04 Python
python爬虫 Pyppeteer使用方法解析
2019/09/28 Python
浅谈sklearn中predict与predict_proba区别
2020/06/28 Python
Python创建文件夹与文件的快捷方法
2020/12/08 Python
IE兼容css3圆角的实现代码
2011/07/21 HTML / CSS
EJB与JAVA BEAN的区别
2016/08/29 面试题
体育老师的教学自我评价分享
2013/11/19 职场文书
欢送退休感言
2014/02/08 职场文书
团队经理竞聘书
2014/03/31 职场文书
留学经费担保书
2014/05/12 职场文书
毕业证明书
2015/06/19 职场文书