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学习笔记之网络编程
Aug 03 NodeJs
Nodejs极简入门教程(一):模块机制
Oct 25 NodeJs
nodejs开发环境配置与使用
Nov 17 NodeJs
Nodejs学习笔记之Stream模块
Jan 13 NodeJs
nodejs搭建本地服务器并访问文件的方法
Mar 03 NodeJs
3分钟快速搭建nodejs本地服务器方法运行测试html/js
Apr 01 NodeJs
nodejs创建简易web服务器与文件读写的实例
Sep 07 NodeJs
nodejs 图片预览和上传的示例代码
Sep 30 NodeJs
nodejs操作mongodb的填删改查模块的制作及引入实例
Jan 02 NodeJs
nodejs实现超简单生成二维码的方法
Mar 17 NodeJs
Nodejs实现爬虫抓取数据实例解析
Jul 05 NodeJs
NodeJS 中Stream 的基本使用
Jul 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开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
PHP面试题之文件目录操作
2015/10/15 PHP
PHP创建PowerPoint2007文档的方法
2015/12/10 PHP
thinkphp5框架API token身份验证功能示例
2019/05/21 PHP
javascript div 弹出可拖动窗口
2009/02/26 Javascript
js 多浏览器分别判断代码
2010/04/01 Javascript
原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法
2016/08/05 Javascript
Vue表单实例代码
2016/09/05 Javascript
超全面的vue.js使用总结
2017/02/12 Javascript
微信小程序开发图片拖拽实例详解
2017/05/05 Javascript
node.js操作mongodb简单示例分享
2017/05/25 Javascript
Angular中响应式表单的三种更新值方法详析
2017/08/22 Javascript
微信小程序实现图片预览功能
2018/01/31 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
2019/05/22 Javascript
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
vue表单验证之禁止input输入框输入空格
2020/12/03 Vue.js
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
Python中的True,False条件判断实例分析
2015/01/12 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
2015/11/11 Python
Python利用Beautiful Soup模块修改内容方法示例
2017/03/27 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
python字符串与url编码的转换实例
2018/05/10 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
Python正则表达式学习小例子
2020/03/03 Python
浅析关于Keras的安装(pycharm)和初步理解
2020/10/23 Python
python实现视频压缩功能
2020/12/18 Python
Python脚本调试工具安装过程
2021/01/11 Python
分享8款纯CSS3实现的搜索框功能
2017/09/14 HTML / CSS
CSS3中设置3D变形的transform-style属性详解
2016/05/23 HTML / CSS
CSS3制作圆角图片和椭圆形图片
2016/07/08 HTML / CSS
Tarte Cosmetics官网:美国最受欢迎的化妆品公司之一
2017/08/24 全球购物
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
机关党总支领导班子整改方案
2014/09/20 职场文书
查摆问题整改措施范文
2014/10/11 职场文书
SSM项目使用拦截器实现登录验证功能
2022/01/22 Java/Android