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教程之环境安装及运行
Nov 21 NodeJs
nodejs教程之制作一个简单的文章发布系统
Nov 21 NodeJs
PHP和NodeJs开发的应用如何共用Session
Apr 16 NodeJs
详解nodeJS之二进制buffer对象
Jun 03 NodeJs
NodeJS实现图片上传代码(Express)
Jun 30 NodeJs
用nodejs实现json和jsonp服务的方法
Aug 25 NodeJs
Mac 安装 nodejs方法(图文详细步骤)
Oct 30 NodeJs
对mac下nodejs 更新到最新版本的最新方法(推荐)
May 17 NodeJs
Nodejs实现爬虫抓取数据实例解析
Jul 05 NodeJs
Nodejs实现的操作MongoDB数据库功能完整示例
Feb 02 NodeJs
nodejs中实现修改用户路由功能
May 24 NodeJs
Nodejs中使用puppeteer控制浏览器中视频播放功能
Aug 26 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中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
2010/07/09 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
2014/06/06 PHP
PHP实现在线阅读PDF文件的方法
2015/06/23 PHP
php解析url并得到url中的参数及获取url参数的四种方式
2015/10/26 PHP
jquery 跨域访问问题解决方法(笔记)
2011/06/08 Javascript
TimergliderJS 一个基于jQuery的时间轴插件
2011/12/07 Javascript
js解析与序列化json数据(二)序列化探讨
2013/02/01 Javascript
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
js实现点小图看大图效果的思路及示例代码
2013/10/28 Javascript
jQuery Form 页面表单提交的小例子
2013/11/15 Javascript
JS中使用Array函数shift和pop创建可忽略参数的例子
2014/05/28 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
2016/03/06 Javascript
JS中的forEach、$.each、map方法推荐
2016/04/05 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
2017/02/10 Javascript
jQuery 实时保存页面动态添加的数据的示例
2017/08/14 jQuery
bootstrap modal+gridview实现弹出框效果
2017/08/15 Javascript
浅谈JavaScript面向对象--继承
2019/03/20 Javascript
javascript面向对象程序设计实践常用知识点总结
2019/07/29 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
JQuery使用数组遍历跳出each循环
2020/09/01 jQuery
python实现百度关键词排名查询
2014/03/30 Python
python面向对象_详谈类的继承与方法的重载
2017/06/07 Python
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
pip install python 快速安装模块的教程图解
2019/10/08 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
Python 忽略文件名编码的方法
2020/08/01 Python
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
End Clothing美国站:英国男士潮牌商城
2018/04/20 全球购物
屈臣氏泰国官网:Watsons TH
2021/02/23 全球购物
大学毕业感言一句话
2014/02/06 职场文书
房地产促销活动方案
2014/03/01 职场文书
绿色学校实施方案
2014/03/31 职场文书
文明社区申报材料
2014/08/21 职场文书
教师政风行风自查自纠报告
2014/10/21 职场文书
不同意离婚答辩状
2015/05/22 职场文书
Mysql - 常用函数 每天积极向上
2021/04/05 MySQL