视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
jQuery遍历XML节点与属性实现步骤
2020-11-27 19:49:12 责编:小采
文档


这次给大家带来jQuery遍历XML节点与属性实现步骤,jQuery遍历XML节点与属性的注意事项有哪些,下面就是实战案例,一起来看一下。

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

以下是JS代码

<script type="text/javascript" src="js/jquery.min.js"></script>
<p id="c"></p>
<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>

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

ES6实现全屏滚动插件步骤详解

vue+vue-router+vuex操作权限

下载本文
显示全文
专题