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框架Express的模板视图机制分析
Jul 19 NodeJs
nodejs分页类代码分享
Jun 17 NodeJs
基于NodeJS的前后端分离的思考与实践(五)多终端适配
Sep 26 NodeJs
nodejs读写json文件的简单方法(必看)
Mar 09 NodeJs
nodejs搭建本地http服务器教程
Mar 13 NodeJs
详解nodejs微信公众号开发——3.封装消息响应模块
Apr 10 NodeJs
nodejs入门教程二:创建一个简单应用示例
Apr 24 NodeJs
win系统下nodejs环境安装配置
May 04 NodeJs
浅谈nodejs中的类定义和继承的套路
Jul 26 NodeJs
NodeJS实现视频转码的示例代码
Nov 18 NodeJs
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
Jul 31 NodeJs
nodejs实现获取本地文件夹下图片信息功能示例
Jun 22 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
计数器详细设计
2006/10/09 PHP
PHP 批量删除数据的方法分析
2009/10/30 PHP
php读取EXCEL文件 php excelreader读取excel文件
2012/12/06 PHP
php版微信自定义回复功能示例
2016/12/05 PHP
Laravel模型间关系设置分表的方法示例
2018/04/21 PHP
PHP大文件分片上传的实现方法
2018/10/28 PHP
event.srcElement 用法笔记e.target
2009/12/18 Javascript
Javascript跨域请求的4种解决方式
2013/03/17 Javascript
减少访问DOM的次数提升javascript性能
2014/02/24 Javascript
js/jquery判断浏览器的方法小结
2014/09/02 Javascript
js实现圆盘记速表
2015/08/03 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
2016/03/01 Javascript
超实用的JavaScript代码段 附使用方法
2016/05/22 Javascript
jQuery-mobile事件监听与用法详解
2016/11/23 Javascript
jQuery实现立体式数字动态增加(animate方法)
2016/12/21 Javascript
mongoose中利用populate处理嵌套的方法
2017/05/26 Javascript
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
JavaScript数组方法的错误使用例子
2018/09/13 Javascript
vue如何自动化打包测试环境和正式环境的dist/test文件
2019/06/06 Javascript
jQuery Ajax async=&gt;false异步改为同步时,解决导致浏览器假死的问题
2019/07/22 jQuery
python刷投票的脚本实现代码
2014/11/08 Python
利用Psyco提升Python运行速度
2014/12/24 Python
Windows下python3.7安装教程
2018/07/31 Python
python变量赋值方法(可变与不可变)
2019/01/12 Python
python字符串循环左移
2019/03/08 Python
美国求婚钻戒网站:Super Jeweler
2016/08/27 全球购物
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
Java模拟试题
2014/11/10 面试题
手机业务员岗位职责
2013/12/13 职场文书
好人好事事迹材料
2014/02/12 职场文书
寄语学生的话
2014/04/10 职场文书
国际经济贸易专业自荐信
2014/06/13 职场文书
大学毕业晚会开场白
2015/05/29 职场文书
MySQL 时间类型的选择
2021/06/05 MySQL
如何正确理解python装饰器
2021/06/15 Python
sql注入报错之注入原理实例解析
2022/06/10 MySQL