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实现简单的抽奖游戏
May 05 jQuery
关于jQuery库冲突的完美解决办法
May 20 jQuery
jQuery表单验证之密码确认
May 22 jQuery
jQuery开源组件BootstrapValidator使用详解
Jun 29 jQuery
jQuery实现导航栏头部菜单项点击后变换颜色的方法
Jul 19 jQuery
使用jQuery 操作table 完成单元格合并的实例
Dec 27 jQuery
jQuery实现的监听导航滚动置顶状态功能示例
Jul 23 jQuery
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
Apr 28 jQuery
js/jQuery实现全选效果
Jun 17 jQuery
jQuery 实现扁平式小清新导航
Jul 07 jQuery
jQuery实现简单评论区功能
Oct 26 jQuery
JQuery绑定事件四种实现方法解析
Dec 02 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
dede3.1分页文字采集过滤规则详说(图文教程)续二
2007/04/03 PHP
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
PHP5.2下preg_replace函数的问题
2015/05/08 PHP
js中关于String对象的replace使用详解
2011/05/24 Javascript
jQuery选择器的工作原理和优化分析
2011/07/25 Javascript
一个简单的Ext.XTemplate的实例代码
2012/03/18 Javascript
Javascript Ajax异步读取RSS文档具体实现
2013/12/12 Javascript
js中数组插入、删除元素操作的方法
2017/02/15 Javascript
微信小程序中用WebStorm使用LESS
2017/03/08 Javascript
js获取指定时间的前几秒
2017/04/05 Javascript
jQuery表单设置值的方法
2017/06/30 jQuery
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
解决vue的变量在settimeout内部效果失效的问题
2018/08/30 Javascript
微信小程序清空输入框信息与实现屏幕往上滚动的示例代码
2020/06/23 Javascript
vue 遮罩层阻止默认滚动事件操作
2020/07/28 Javascript
Vue实现简单的拖拽效果
2020/08/25 Javascript
python实现电脑自动关机
2018/06/20 Python
详解python函数的闭包问题(内部函数与外部函数详述)
2019/05/17 Python
python中字符串数组逆序排列方法总结
2019/06/23 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
2020/06/28 Python
Django crontab定时任务模块操作方法解析
2020/09/10 Python
详解python中的异常捕获
2020/12/15 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
利用Canvas模仿百度贴吧客户端loading小球的方法示例
2017/08/13 HTML / CSS
解决html5中的video标签ios系统中无法播放使用的问题
2020/08/10 HTML / CSS
运动会广播稿80字
2014/01/23 职场文书
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
大学新生军训方案
2014/05/03 职场文书
师德模范事迹材料
2014/06/03 职场文书
市场调查策划方案
2014/06/10 职场文书
2015年感恩节演讲稿(优选篇)
2015/03/20 职场文书
2015年大学生村官工作总结
2015/04/21 职场文书
2015年入党积极分子培养考察意见
2015/08/12 职场文书
html+css实现赛博朋克风格按钮
2021/05/26 HTML / CSS
Python编写冷笑话生成器
2022/04/20 Python