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中调用系统命令、Shell脚本和Python脚本的方法和实例
Jan 01 NodeJs
nodejs导出excel的方法
Jun 30 NodeJs
nodeJs爬虫获取数据简单实现代码
Mar 29 NodeJs
nodejs实例解析(输出hello world)
Jan 03 NodeJs
nodejs操作mysql实现增删改查的实例
May 28 NodeJs
nodejs密码加密中生成随机数的实例代码
Jul 17 NodeJs
详解Nodejs内存治理
May 13 NodeJs
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
Dec 06 NodeJs
nodejs实现获取本地文件夹下图片信息功能示例
Jun 22 NodeJs
NodeJS http模块用法示例【创建web服务器/客户端】
Nov 05 NodeJs
NodeJS配置CORS实现过程详解
Dec 02 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/02 PHP
php通过COM类调用组件的实现代码
2012/01/11 PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
2013/06/21 PHP
PHP查找与搜索数组元素方法总结
2015/06/12 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
2016/02/15 PHP
PHP正则获取页面所有图片地址
2016/03/23 PHP
Yii中的cookie的发送和读取
2016/07/27 PHP
PHP实现对xml的增删改查操作案例分析
2017/05/19 PHP
取得传值的函数
2006/10/27 Javascript
JavaScript CSS修改学习第一章 查找位置
2010/02/19 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
JQuery Easyui Tree的oncheck事件实现代码
2010/05/28 Javascript
js确认删除对话框适用于a标签及submit
2014/07/10 Javascript
jQuery实现ichat在线客服插件
2014/12/29 Javascript
node.js [superAgent] 请求使用示例
2015/03/13 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
2015/07/08 Javascript
JS实现网页右侧带动画效果的伸缩窗口代码
2015/10/29 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
2016/05/26 Javascript
关于Stream和Buffer的相互转换详解
2017/07/26 Javascript
JS实现的简单表单验证功能完整实例
2017/10/14 Javascript
Angularjs实现多图片上传预览功能
2018/07/18 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
Vue中Axios从远程/后台读取数据
2019/01/21 Javascript
vue中使用element组件时事件想要传递其他参数的问题
2019/09/18 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
Python实现遍历数据库并获取key的值
2015/05/17 Python
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
2018/05/26 Python
python 反向输出字符串的方法
2018/07/16 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
2019/08/28 Python
解决Numpy中sum函数求和结果维度的问题
2019/12/06 Python
深入分析python 排序
2020/08/24 Python
英国网上购买门:Direct Doors
2018/06/07 全球购物
《欢乐的泼水节》教学反思
2014/04/22 职场文书
小学运动会前导词
2015/07/20 职场文书