jQuery学习之八-----jQuery解析xml文件(摘录)

jQuery学习之八-----jQuery解析xml文件(摘录)

2、 Content-Type

    很多情况下XML文件不能正常解析都是由于Content-Type没有设置好。如果Content-Type本身就是一个XML文件则不需要设置;如果是由后台程序动态生成的,那么就需要设置Content-Type为“text/xml”,否则JQuery会以默认的“text/html”方式处理,导致解析失败。以下是几种常见语言中设置Content-Type的方式。

[plain] view plain copy
  1. header("Content-Type:text/xml");     //PHP  
  2. response.ContentType = "text/xml";   //ASP  
  3. response.setContentType("text/xm");  //JSP 

最近写ipad客户端,需要用到jquery,所以学习一下,用到了jquery如何解析xml文件,和大家分享一下。

1、首先建立一个City.xml文件

复制代码
 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <provinces>
 3   <province name="湖北">
 4     <city>武汉</city>
 5     <city>黄石</city>
 6     <city>宜昌</city>
 7     <city>天门</city>
 8   </province>
 9   <province name="湖南">
10     <city>邵阳</city>
11     <city>长沙</city>
12     <city>岳阳</city>
13   </province>
14   <province name="广东">
15     <city>广州</city>
16     <city>深圳</city>
17   </province>
18 </provinces>
复制代码

2、在web前端建立一个Province.htm的界面

复制代码
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4     <title>省市选择</title>
 5     <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
 6     <script type="text/javascript">
 7         $(document).ready(function () {
 8             $.ajax({
 9                 url: "City.xml",
10                 success: function (xml) {
11                     $(xml).find("province").each(function () {
12                         var t = $(this).attr("name");
13                         $("#DropProvince").append("<option>" + t + "</option>");
14                     });
15                 }
16             });
17             $("#DropProvince").change(function () {
18                 $("#sCity>option").remove();
19                 var pname = $("#DropProvince").val();
20                 $.ajax({
21                     url: "City.xml",
22                     success: function (xml) { 
23                         $(xml).find("province[name='"+pname+"']>city").each(function(){
24                             $("#sCity").append("<option>"+$(this).text()+"</option>");
25                         });
26                     }
27                 });
28             });
29         });
30     </script>
31 </head>
32 <body>
33     <form id="form1">
34     <div>
35         <select id="DropProvince" style="width: 60px;">
36             <option>请选择</option>
37         </select>
38         <select id="sCity" style="width: 60px;">
39         </select>
40     </div>
41     </form>
42 </body>
43 </html>
复制代码

其实主要是注意怎样在html界面上解析xml文件,格式就是

复制代码
 1 <script type="text/javascript">
 2         $(document).ready(function () {
 3             $.ajax({
 4                 url: "City.xml",
 5                 success: function (xml) {
 6                     $(xml).find("province").each(function () {
 7                         var t = $(this).attr("name");
 8                         $("#DropProvince").append("<option>" + t + "</option>");
 9                     });
10                 }
11             });
12             $("#DropProvince").change(function () {
13                 $("#sCity>option").remove();
14                 var pname = $("#DropProvince").val();
15                 $.ajax({
16                     url: "City.xml",
17                     success: function (xml) { 
18                         $(xml).find("province[name='"+pname+"']>city").each(function(){
19                             $("#sCity").append("<option>"+$(this).text()+"</option>");
20                         });
21                     }
22                 });
23             });
24         });
25     </script>
复制代码

就是用$.ajax()调用xml文件的内容。然后$.each()进行循环操作,基本思想就是这样的,成功之后去执行success这个回调函数。这里的xml文件是用来存储数据的,相当于在数据库中读取文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值