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 04 NodeJs
实例详解Nodejs 保存 payload 发送过来的文件
Jan 14 NodeJs
nodejs服务搭建教程 nodejs访问本地站点文件
Apr 07 NodeJs
nodejs个人博客开发第五步 分配数据
Apr 12 NodeJs
nodejs的路径问题的解决
Jun 30 NodeJs
Nodejs中的JWT和Session的使用
Aug 21 NodeJs
Nodejs处理异常操作示例
Dec 25 NodeJs
nodejs使用node-xlsx生成excel的方法示例
Aug 22 NodeJs
NodeJS 文件夹拷贝以及删除功能
Sep 03 NodeJs
nodejs dgram模块广播+组播的实现示例
Nov 04 NodeJs
分享五个Node.js开发的优秀实践 
Apr 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
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
php去除数组中重复数据
2014/11/18 PHP
Javascript 个人笔记(没有整理,很乱)
2007/07/07 Javascript
jquery validation插件表单验证的一个例子
2010/03/03 Javascript
JavaScript中this详解
2015/09/01 Javascript
基于javascript实现tab切换特效
2016/03/29 Javascript
javascript 利用arguments实现可变长参数
2016/11/21 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
Jquery把获取到的input值转换成json
2017/05/15 jQuery
浅析从vue源码看观察者模式
2018/01/29 Javascript
React Native自定义控件底部抽屉菜单的示例
2018/02/08 Javascript
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
2018/03/06 Javascript
angularJs在多个控制器中共享服务数据的方法
2018/09/30 Javascript
详解vue微信网页授权最终解决方案
2019/06/16 Javascript
JavaScript原型式继承实现方法
2019/11/06 Javascript
JavaScript设计模型Iterator实例解析
2020/01/22 Javascript
js中addEventListener()与removeEventListener()用法案例分析
2020/03/02 Javascript
JS实现简易留言板(节点操作)
2020/03/16 Javascript
Python 的 Socket 编程
2015/03/24 Python
python实现将内容分行输出
2015/11/05 Python
Python+request+unittest实现接口测试框架集成实例
2018/03/16 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
用uWSGI和Nginx部署Flask项目的方法示例
2019/05/05 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
利用Python实现最小二乘法与梯度下降算法
2021/02/21 Python
教师实习期自我鉴定
2013/10/06 职场文书
信息专业本科生个人的自我评价
2013/10/28 职场文书
优秀体育委员自荐书
2014/01/31 职场文书
业务内勤岗位职责
2014/04/30 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
挂职锻炼个人总结
2015/03/05 职场文书
买卖合同纠纷代理词
2015/05/25 职场文书
狼牙山五壮士观后感
2015/06/09 职场文书
html css3不拉伸图片显示效果
2021/06/07 HTML / CSS
python blinker 信号库
2022/05/04 Python