JQuery读取XML文件数据并显示的实现代码


Posted in Javascript onDecember 16, 2009

准备工作

在开始之前我们需要做如下准备工作:

1.创建一个名为DEMO.html空白html文件;(推荐使用Editplus创建)

2.熟悉JQuery框架的基本语法;(不熟悉没关系,后面我会注释得很详细)

3.创建一个名为data.xml的XML文件用来存储数据,XML的结构下面会涉及到,你也可以下载我打包好的文件查看;

4.一个loading.gif图片,这个图片用于在将XML读取出来的等待时间里面显示在空白html文档中

正式开始

Step 1:首先让我们看看这个data.xml的简单结构,我这里演示的数据是"Saturn为您推荐的几本书",故为书籍信息,那么xml就包括书籍的名称,缩略图和书籍描述信息;

以下为XML文件代码:

<?xml version="1.0" encoding="utf-8" ?> 
<books> 
<book title="藏地密码" imageurl="images/Tibet_Code.jpg"> 
<description> 
这里是概况(3water.com) 
</description> 
</book> <book title="剑桥雅思6" imageurl="images/ielts.jpg"> 
<description> 
这里是概况(3water.com) 
</description> 
</book> 
<book title="Professional ASP.NET" imageurl="images/asp.jpg"> 
<description> 
这里是概况(3water.com) 
</description> 
</book> 
</books>

其次,让我们看看加载在空白HTML文档里面的JavaScript代码:

$(document).ready(function() 
{ 
$.get('myData.xml', function(d){ 
$('body').append('<h1> Saturn给你推荐几本书: </h1>'); 
$('body').append('<dl />'); $(d).find('book').each(function(){ 
var $book = $(this); 
var title = $book.attr("title"); 
var description = $book.find('description').text(); 
var imageurl = $book.attr('imageurl'); 
var html = '<dt> <img class="bookImage" alt="" src="' + imageurl + '" /> </dt>'; 
html += '<dd> <span class="loadingPic" alt="Loading" />'; 
html += '<p class="title">' + title + '</p>'; 
html += '<p> ' + description + '</p>' ; 
html += '</dd>'; 
$('dl').append($(html)); 
$('.loadingPic').fadeOut(2000); 
}); 
}); 
});

Step 2:这里,我只讲下JavaScript代码原理与运行流程,不过分讨论语法,如果你对语法有任何疑问,请给我留言或者查看JQuery相关文档。

行1:当HTML文档准备完毕之后(即html和JavaScript都下载完毕),会自动触发JQuery的 $(document).ready方法及里面的过程。显然,这里首先执行的是$.get方法。
行3:$.get的第一个参数是XML文件的相对路径(注意路径要填写正确,这里我们把XML和网页文件放在同一文件夹)。第二个参数是一个Callback函数,即回调函数。就是说通过get方法来请求这个XML文件的内容,然后通过这个callback回调函数来操作里面的数据。而callback的参数d表示从XML回调过来的所有数据,有了这个参数d,我们就好进行下面的内容了。
行4:通过JavaScript在文档的BODY中动态添加一个标签<h1>,这个是页面的总标题,无关紧要;
行5:同样在BODY中动态添加一个标签<dl>,用来作为包含循环下面的内容容器。(行20会用到)
行7:这一行很重要,因为我们已经说过,回调函数的参数d表示从XML回调的所有数据,现在我们就需要对这些数据进行处理(筛选)和格式化;请注意:这里通过搜寻book标签(tag),然后循环执行each后面的函数,直到xml里面数据的条目完全循环完毕;(有点像PHP里面的foreach函数的功能)
行9:$(this)实际上就创建一个对象,目的是将d的当前一条书籍信息对象实例化,方便进行操作,这就是$book;
行10--行12:分别获取当前对象$book的书籍名称,描述和缩略图;(注意取属性值和取节点值的语法不同)
行14-行18:格式化书籍信息,以便输出;
行20:将格式化后的信息以HTML输出方式输出到文档中。
行22:为了告诉用户我们当前的信息正在从XML中读取,2000毫秒(2秒)后,图片逐渐消失。

Step 3:至此,大功告成。欢迎大家给我留言,共同讨论JQuery的开发和你所碰到的问题,请不吝赐教。另外,请将下载后的文件夹放在WEB环境下运行(IIS或虚拟主机),请不要直接点开运行。

代码打包下载

Javascript 相关文章推荐
jquery链式操作的正确使用方法
Jan 06 Javascript
confirm的用法示例用于按钮操作时确定是否执行
Jun 19 Javascript
分享JavaScript与Java中MD5使用两个例子
Dec 23 Javascript
AngularJS 服务详细讲解及示例代码
Aug 17 Javascript
JS求解三元一次方程组值的方法
Jan 03 Javascript
javascript 初学教程及五子棋小程序的简单实现
Jul 04 Javascript
Vue2.0 多 Tab切换组件的封装实例
Jul 28 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
Jan 02 jQuery
js操作二进制数据方法
Mar 03 Javascript
浅谈Vue.use的使用
Aug 29 Javascript
基于vue的验证码组件的示例代码
Jan 22 Javascript
微信小程序实现日期格式化和倒计时
Nov 01 Javascript
js实现页面打印功能实例代码(附去页眉页脚功能代码)
Dec 15 #Javascript
jQuery 渐变下拉菜单
Dec 15 #Javascript
多浏览器兼容的获取元素和鼠标的位置的js代码
Dec 15 #Javascript
讨论javascript(一)工厂方式 js面象对象的定义方法
Dec 15 #Javascript
查询绑定数据岛的表格中的文本并修改显示方式的js代码
Dec 15 #Javascript
jquery自动完成插件(autocomplete)应用之PHP版
Dec 15 #Javascript
Javascript attachEvent传递参数的办法
Dec 14 #Javascript
You might like
新52大事件
2020/03/03 欧美动漫
PHP 批量删除 sql语句
2009/06/05 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
关于Yii中模型场景的一些简单介绍
2019/09/22 PHP
JavaScript 学习笔记(十一)
2010/01/19 Javascript
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
JS实现FLASH幻灯片图片切换效果的方法
2015/03/04 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
详解AngularJS中自定义过滤器
2015/12/28 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
2016/03/01 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
VUE中使用Vue-resource完成交互
2017/07/21 Javascript
ES6 javascript中class类的get与set用法实例分析
2017/10/30 Javascript
基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
2017/11/02 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
2018/04/20 Javascript
JavaScript常用数组操作方法,包含ES6方法
2020/05/10 Javascript
Vue实现导航栏的显示开关控制
2019/11/01 Javascript
在 Vue 中使用 JSX 及使用它的原因浅析
2020/02/10 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
react-native 实现购物车滑动删除效果的示例代码
2021/01/15 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日小组赛B组Effect VS Secret
2018/03/30 DOTA
Python中使用Queue和Condition进行线程同步的方法
2016/01/19 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
2019/07/17 Python
python实现吃苹果小游戏
2020/03/21 Python
Daniel Wellington官方海外旗舰店:丹尼尔惠灵顿DW手表
2018/02/22 全球购物
如何实现jdbc性能优化
2012/07/30 面试题
初任培训自我鉴定
2013/10/07 职场文书
信息技术专业个人自我评价
2013/12/11 职场文书
考生诚信考试承诺书
2014/05/23 职场文书
祖国在我心中演讲稿450字
2014/09/05 职场文书
中学生旷课检讨书500字
2014/10/29 职场文书
慰问信格式规范
2015/03/23 职场文书
2015年汽车销售员工作总结
2015/07/24 职场文书
python中redis包操作数据库的教程
2022/04/19 Python