js使用递归解析xml


Posted in Javascript onDecember 12, 2014

xml结构:

<RightMenuItems>

  <Item Code="New" Name="新建" GroupCode="Edit" GroupName="编辑"/>

  <Item Code="Open" Name="打开" GroupCode="Edit" GroupName="编辑">

    <item Code="Word" Name="Word文档" GroupCode="CommonDocument" GroupName="常规"/>

    <item Code="Excel" Name="Excel文档" GroupCode="CommonDocument" GroupName="常规"/>

    <item Code="CustomDocument" Name="自定义文档" GroupCode="CustomDocument" GroupName="自定义"/>

  </Item>

  <Item Code="Save" Name="保存" GroupCode="Edit" GroupName="编辑"/>

  <Item Code="Exit" Name="离开" GroupCode="Exit" GroupName="离开"/>

</RightMenuItems>

解析方法:

$(xml).find("RightMenuItems").each(function () {
 this.data = Traversal($(this).children());

 });

var Traversal = function (nodes) {

        var itemList = new Array();

        $.each(nodes, function () {

            var entity = new RightMenuEntity();

            var obj = $(this);

            entity.Code = obj[0].getAttribute("Code");

            entity.Name = obj[0].getAttribute("Name");

            entity.GroupCode = obj[0].getAttribute("GroupCode");

            entity.GroupName = obj[0].getAttribute("GroupName");

            if (obj[0].hasChildNodes()) entity.ChildItems = Traversal(obj.children());

            itemList.push(entity);

        });

        return itemList;

    };

以上就是javascript使用递归解析XML的全部代码了,超级简洁,非常使用,给需要的小伙伴参考下。

Javascript 相关文章推荐
如何确保JavaScript的执行顺序 之实战篇
Mar 03 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
Dec 26 Javascript
探讨JavaScript中声明全局变量三种方式的异同
Dec 03 Javascript
jquery $.trim()方法使用介绍
May 21 Javascript
浅析JavaScript基本类型与引用类型
May 28 Javascript
javascript实现在某个元素上阻止鼠标右键事件的方法和实例
Aug 12 Javascript
Javascript学习笔记之数组的遍历和 length 属性
Nov 23 Javascript
浅谈原生JS实现jQuery的animate()动画示例
Mar 08 Javascript
详解使用angular的HttpClient搭配rxjs
Sep 01 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
Sep 25 Javascript
JavaScript设计模式之观察者模式与发布订阅模式详解
May 07 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
Jul 22 Javascript
做web开发 先学JavaScript
Dec 12 #Javascript
兼容主流浏览器的JS复制内容到剪贴板
Dec 12 #Javascript
Javascript模拟加速运动与减速运动代码分享
Dec 11 #Javascript
javascript中HTMLDOM操作详解
Dec 11 #Javascript
javascript实现修改微信分享的标题内容等
Dec 11 #Javascript
javascript表单验证和Window详解
Dec 11 #Javascript
使用百度地图api实现根据地址查询经纬度
Dec 11 #Javascript
You might like
Memcached常用命令以及使用说明详解
2013/06/27 PHP
Codeigniter实现发送带附件的邮件
2015/03/19 PHP
PHP开发中常用的十个代码样例
2016/02/02 PHP
浅谈PHP的反射机制
2016/12/15 PHP
RSA实现JS前端加密与PHP后端解密功能示例
2019/08/05 PHP
javascript+dom树型菜单类,希望朋友们一起进步
2007/05/03 Javascript
让iframe子窗体取父窗体地址栏参数(querystring)
2009/10/13 Javascript
js左侧三级菜单导航实例代码
2013/09/13 Javascript
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
js中document.write使用过程中的一点疑问解答
2014/03/20 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
2015/12/08 Javascript
jQuery Masonry瀑布流插件使用方法详解
2017/01/18 Javascript
jquery实现页面加载效果
2017/02/21 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
原生JS实现隐藏显示图片 JS实现点击切换图片效果
2021/01/27 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
浅谈关于vue中scss公用的解决方案
2019/12/02 Javascript
Vue.js使用axios动态获取response里的data数据操作
2020/09/08 Javascript
[01:06:54]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第一场 1月24日
2021/03/11 DOTA
零基础写python爬虫之神器正则表达式
2014/11/06 Python
在Python中进行自动化单元测试的教程
2015/04/15 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
将pandas.dataframe的数据写入到文件中的方法
2018/12/07 Python
初探利用Python进行图文识别(OCR)
2019/02/26 Python
python super的使用方法及实例详解
2019/09/25 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
mac安装python3后使用pip和pip3的区别说明
2020/09/01 Python
Python 微信公众号文章爬取的示例代码
2020/11/30 Python
华三通信H3C面试题
2015/05/15 面试题
财务管理专业毕业生求职信
2014/06/02 职场文书
学校党委干部个人对照检查材料思想汇报
2014/10/09 职场文书
化验员岗位职责
2015/02/14 职场文书
《好妈妈胜过好老师》:每个孩子的优秀都是有源头的
2020/01/03 职场文书