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实现的一个简单聊天室功能分享
Dec 06 NodeJs
ubuntu下安装nodejs以及升级的办法
May 08 NodeJs
Nodejs+Socket.io实现通讯实例代码
Feb 13 NodeJs
用nodeJS搭建本地文件服务器的几种方法小结
Mar 16 NodeJs
Nodejs基于LRU算法实现的缓存处理操作示例
Mar 17 NodeJs
nodejs操作mysql实现增删改查的实例
May 28 NodeJs
nodeJS实现路由功能实例代码
Jun 08 NodeJs
nodejs创建简易web服务器与文件读写的实例
Sep 07 NodeJs
nodejs基于express实现文件上传的方法
Mar 19 NodeJs
Nodejs 发布自己的npm包并制作成命令行工具的实例讲解
May 15 NodeJs
PHPStorm中如何对nodejs项目进行单元测试详解
Feb 28 NodeJs
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
May 30 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 快速生成 Flash 动画的方法
2007/03/06 PHP
修改php.ini实现Mysql导入数据库文件最大限制的修改方法
2007/12/11 PHP
解析Extjs与php数据交互(增删查改)
2013/06/25 PHP
php不用正则验证真假身份证
2013/11/06 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
2015/02/12 PHP
使用PHPExcel操作Excel用法实例分析
2015/03/26 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
PHP防止图片盗用(盗链)的方法小结
2016/11/11 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
如何实现JS函数的重载
2006/09/22 Javascript
动态创建的表格单元格中的事件实现代码
2008/12/30 Javascript
jquery修改网页背景颜色通过css方法实现
2014/06/06 Javascript
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
简介JavaScript中的sub()方法的使用
2015/06/08 Javascript
Node.js中的process.nextTick使用实例
2015/06/25 Javascript
跟我学习javascript的全局变量
2015/11/16 Javascript
js调用屏幕宽度的简单方法
2016/11/14 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
用Python shell简化开发
2018/08/08 Python
解决pycharm无法识别本地site-packages的问题
2018/10/13 Python
用uWSGI和Nginx部署Flask项目的方法示例
2019/05/05 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
Matplotlib使用字符串代替变量绘制散点图的方法
2020/02/17 Python
CSS3截取字符串实例代码【推荐】
2018/06/07 HTML / CSS
如何在Canvas上的图形/图像绑定事件监听的实现
2020/09/16 HTML / CSS
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
美国紧身牛仔裤品牌:NYDJ
2017/05/24 全球购物
瑞典的玛丽小姐:Miss Mary of Sweden
2019/02/13 全球购物
行政工作个人的自我评价
2014/02/13 职场文书
大学生新学期计划书
2014/04/28 职场文书
2016年国陪研修感言
2015/11/18 职场文书
读《庄子》有感:美而不自知
2019/11/06 职场文书
教你怎么用Python实现GIF动图的提取及合成
2021/06/15 Python
Python中np.random.randint()参数详解及用法实例
2022/09/23 Python