用JQuery的Ajax加载XML并解析的注意事项

[b][color=blue]1、Content-Type[/color][/b]
[color=green]很多时候无法解析就是Content-Type的问题。如果本身就是XML文件,请跳过这一步。
动态生成的XML一定要将其设置为text/xml,否则默认就是text/html也就是普通的文本。[/color] 常见语言的Content-Type设置:
[color=blue]response.setHeader[/color]("[color=red]ContentType[/color]","[color=red]text/xml[/color]"); //jsp
[color=blue]response.ContentType=[/color] "[color=red]text/xml[/color]"; //asp
[color=blue]header[/color]("[color=red]Content-Type:text/xml[/color]"); //php
[b][color=blue]2、xml结构[/color][/b]
[color=red]XML一定要封闭的,很重要的![/color]
[color=green]<?xml version="1.0" encoding="UTF-8"?>[/color]
<stulist>
<student [color=violet]email="lynn@126.com"[/color]>
<name>[color=gray]zhangsan[/color]</name>
<id>[color=gray]1[/color]</id>
</student>
<student [color=violet]email="lynn@sina.com"[/color]>
<name>[color=gray]lisi[/color]</name>
<id>[color=gray]2[/color]</id>
</student>
</stulist>
[b][color=blue]3、解析[/color][/b]
[color=indigo]遍历student(这里还是用上面那个XML,子节点是student)[/color]
[color=green]$.ajax({
url:'ajax.jsp',
type:'GET',
dataType:"xml",
timeout:1000,
error:function(xml){alert('Error Loading XML document' + xml);},
success:function(xml){
$(xml).find("student").each(function(i){
var id = $(this).children("id"); //取对象
var id_value = id.text(); //取文本 或者 $("id",xml).text();
alert($(this).attr("email")); //这里显示student下的email属性】
$('<li></li>').html(id_value).appendTo('ol');
});
}
});[/color]
[b][color=blue]4、禁用缓存[/color][/b]
[color=violet]如果你直接使用Ajax方法,可以使用cache:false来禁用缓存。[/color]
[color=gray]如果你使用get或者post方法,可以在url后面加上时间戳:"xml.jsp?timestamp=" + (new Date());
注意:不要使用随机数,因为你无法预料到随机数会不会再随机到......[/color]
[color=violet]但是在一切正常的情况下,时间戳是肯定不会重复的。[/color]

[b][color=red]最后补充一条:保证服务器端是utf-8的编码,否则会乱码!同时要保证你的XML文件也是utf-8编码格式的![/color][/b]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值