jQuery实现遍历XML节点和属性的方法示例


Posted in jQuery onApril 29, 2018

本文实例讲述了jQuery实现遍历XML节点和属性的方法。分享给大家供大家参考,具体如下:

用jquery遍历xml网上已经有很多, 但是看了好多文章, 对于不指定属性名称的遍历方法却没有

研究了一下, 好像jquery没有attributes. 还是要借助于原生态的JS

以下是JS代码

<script type="text/javascript" src="js/jquery.min.js"></script>
<div id="c"></div>
<script>
//用于缩进, 根据节点级别
var M_DOT = 1;
//递归函数, 用于遍历XML, 同时打印出来
function fn(obj){
  //定义一个变量, 用于缩进
  var dotString = "";
  //根据缩进量, 得到缩进的长度
  for(j = 1; j <= M_DOT; j++){
    dotString += "    ";
  }
  //jquery不支持attributes属性集, 转为原生js, 并赋给myObj变量
  var myObj = obj[0].attributes;
  //打印缩进
  $("#c").append(dotString)
  //打印属性集nodeName, nodeValue为原生JS, 分别表示为属性的名称, 和属性值
  $(myObj).each(function(i){
    $("#c").append( ($(this)[0].nodeName) + "=<u>" + ($(this)[0].nodeValue) + "</u> " );
  })
  //打印节点的文本
  //$("#c").append( "<b>" + obj.text() + "</b><br/>");
  //打印换行
  $("#c").append( "<br/>");
  //判断DOM有无子DOM
  if( obj.length > 0 ){
    //如果有, 遍历之
    obj.children().each(function(i){
      //缩进量加一
      M_DOT++;
      //递归遍历子DOM
      fn($(this));
      //缩进量加一
      M_DOT--;
    })
  }else{
    //如果没有子DOM, 返回false
    return false;
  }
}
//程序入口
$(document).ready(function() {
  //ajax获取xml数据, 详细用法见jquery手册
  $.get('config.xml', function(d){
    //len = $(d).find("*").length;
    //找到xml顶级结点. ('*:first'):就是查找第一个DOM. 详细说明见jquery手册
    //find, children(), each, 以及后面用到的 append 等请查阅jquery手册
    $(d).find('*:first').children().each(function(i){
      //找到顶级结点的子结点, 并把子结点对象传给fn函数
      fn($(this));
    });
  });
});
</script>

附一个XML文件

请取名config.xml放在和以上js同目录下, 并都放在站点中

<?xml version="1.0" encoding="utf-8" ?>
<roster>
  <student ID="s101">
    <name>李华</name>
    <sex>男</sex>
    <birthday>1978.9.12</birthday>
    <score>92</score>
    <skill>Java</skill>
    <skill>Oracle</skill>
    <skill>C Sharp</skill>
    <skill>SQL Server</skill>
  </student>
  <student ID="s107">
    <name>李寻欢</name>
    <sex>男</sex>
    <birthday>1981.4.19</birthday>
    <score>58</score>
    <skill>UML</skill>
    <skill>C Sharp</skill>
    <skill>XML</skill>
    <skill>SQL Server</skill>
  </student>
</roster>
jQuery 相关文章推荐
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
Mar 24 jQuery
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
May 13 jQuery
jQuery 控制文本框自动缩小字体填充
Jun 16 jQuery
jQuery validata插件实现方法
Jun 25 jQuery
Django中使用jquery的ajax进行数据交互的实例代码
Oct 15 jQuery
jquery实现图片跟随鼠标的实例
Oct 17 jQuery
jQuery ajax读取本地json文件的实例
Oct 31 jQuery
jQuery实现动态控制页面元素的方法分析
Dec 20 jQuery
Jquery动态列功能完整实例
Aug 30 jQuery
JQuery省市联动效果实现过程详解
May 08 jQuery
jquery轮播图插件使用方法详解
Jul 31 jQuery
jQuery中event.target和this的区别详解
Aug 13 jQuery
jQuery实现的电子时钟效果完整示例
Apr 28 #jQuery
vue+jquery+lodash实现滑动时顶部悬浮固定效果
Apr 28 #jQuery
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
Apr 27 #jQuery
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
Apr 26 #jQuery
jQuery实现的点击标题文字切换字体效果示例【测试可用】
Apr 26 #jQuery
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
Apr 26 #jQuery
jQuery length 和 size()区别总结
Apr 26 #jQuery
You might like
Syphon 秘笈
2021/03/03 冲泡冲煮
PHP strtok()函数的优点分析
2010/03/02 PHP
PHP array_shift()用法实例分析
2019/01/07 PHP
用javascript实现的激活输入框后隐藏初始内容
2007/06/29 Javascript
动态添加js事件实现代码
2009/03/12 Javascript
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
JS高级笔记
2011/07/13 Javascript
jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
2013/01/04 Javascript
用原生JavaScript实现jQuery的$.getJSON的解决方法
2013/05/03 Javascript
jQuery创建DOM元素实例解析
2015/01/19 Javascript
JavaScript实现带标题的图片轮播特效
2015/05/20 Javascript
JavaScript中匿名函数的用法及优缺点详解
2016/06/01 Javascript
深入理解Javascript中的自执行匿名函数
2016/06/03 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
Python计算三角函数之asin()方法的使用
2015/05/15 Python
python学习教程之Numpy和Pandas的使用
2017/09/11 Python
python 中值滤波,椒盐去噪,图片增强实例
2019/12/18 Python
简单了解Python3 bytes和str类型的区别和联系
2019/12/19 Python
python正则表达式匹配IP代码实例
2019/12/28 Python
python图形界面开发之wxPython树控件使用方法详解
2020/02/24 Python
Django 设置多环境配置文件载入问题
2020/02/25 Python
Python Django form 组件动态从数据库取choices数据实例
2020/05/19 Python
威尔逊皮革:Wilsons Leather
2018/12/07 全球购物
函数指针的定义是什么
2016/08/14 面试题
师范大学应届生求职信
2013/11/21 职场文书
大学生党课思想汇报
2013/12/29 职场文书
2014年个人债务授权委托书范本
2014/09/22 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
优秀员工自荐书
2015/03/06 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
2015年超市员工工作总结
2015/05/04 职场文书
关于迟到的检讨书
2015/05/06 职场文书
工作后的感想
2015/08/07 职场文书
python基于OpenCV模板匹配识别图片中的数字
2021/03/31 Python
Python还能这么玩之用Python做个小游戏的外挂
2021/06/04 Python