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的前后端分离的思考与实践(三)轻量级的接口配置建模框架
Sep 26 NodeJs
nodejs multer实现文件上传与下载
May 10 NodeJs
详解Nodejs之npm&amp;package.json
Jun 15 NodeJs
理解nodejs的stream和pipe机制的原理和实现
Aug 12 NodeJs
NodeJS爬虫实例之糗事百科
Dec 14 NodeJs
nodejs中密码加密处理操作详解
Mar 20 NodeJs
利用nodeJs anywhere搭建本地服务器环境的方法
May 12 NodeJs
webpack打包nodejs项目的方法
Sep 26 NodeJs
nodejs读取图片返回给浏览器显示
Jul 25 NodeJs
详解利用nodejs对本地json文件进行增删改查
Sep 20 NodeJs
nodejs中内置模块fs,path常见的用法说明
Nov 07 NodeJs
NodeJs使用webpack打包项目的方法详解
Feb 28 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函数解决SQL injection
2006/12/09 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
PHP数据库表操作的封装类及用法实例详解
2016/07/12 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
通过JAVASCRIPT读取ASP设定的COOKIE
2007/02/15 Javascript
jQuery Ajax使用 全解析
2010/12/15 Javascript
JS比较两个时间大小的简单示例代码
2013/12/20 Javascript
改变隐藏的input中value的值代码
2013/12/30 Javascript
JS中正则表达式只有3种匹配模式(没有单行模式)详解
2016/07/28 Javascript
jQuery给指定的table动态添加删除行的操作方法
2016/10/12 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
js实现tab选项卡切换功能
2017/01/13 Javascript
详解VueJs异步动态加载块
2017/03/09 Javascript
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
JS中图片压缩的方法小结
2017/11/14 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
2018/01/21 Javascript
在vscode里使用.vue代码模板的方法
2018/04/28 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
2018/10/19 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
2019/08/01 Javascript
python基础教程之python消息摘要算法使用示例
2014/02/10 Python
Python使用函数默认值实现函数静态变量的方法
2014/08/18 Python
Python urls.py的三种配置写法实例详解
2017/04/28 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
基于windows下pip安装python模块时报错总结
2018/06/12 Python
在PyCharm中实现关闭一个死循环程序的方法
2018/11/29 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
2020/01/25 Python
python 画条形图(柱状图)实例
2020/04/24 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
超市中秋节活动方案
2014/02/12 职场文书
租房协议书怎么写
2014/04/10 职场文书
信息工作经验交流材料
2014/05/28 职场文书
2015年安全生产工作总结范文
2015/04/02 职场文书
公司的力量观后感
2015/06/05 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书
详解JavaScript中的执行上下文及调用堆栈
2021/04/29 Javascript