javascript 读取本地xml文件

今天有人问了我一个问题, 通过

   $.get('d.xml', function(data) {

 

        alert(data);

      $(data).find('entry').each(function() {

        alert("BBBBBBBBBBBBB");

      });

    });

 

  加载本地xml文件(不是放到服务器读取),在ie下能 alert(data) 打印出xml信息,但是不能输出字符'BBBBBBBBB'。也就是说

  $(data)没有能够加载生成xml dom信息。

 

 

   我采用google chrome调试了下,发现 alert的data为空("")。  

   我将网页发布到tomcat6.0下运行在ie与chrome下都正常,于是我妄下了定论  jquery 加载xml文件需要在服务器下。

   

 

 

   后来感觉有些武断,上网搜索了下。经过长时间调试与搜索终于发现了我的错误  

 

 

   本地文件是可以直接采用javascript加载的,所有jquery同样能够实现本地加载。虽然,是通过ajax实现的,但是后台我们可以不用管,毕竟jquery加载xml的方式就是如此(没准后台加载本地文件不是通过ajax呢  )。

 

 

  这里就需要说明下为什么ie下能够加载本地xml信息,即:alert(data)打印出xml信息,但是却不能解析xml了,

 看网站:

http://hi.baidu.com/billschen/blog/item/fedc4203b07666fd09fa937c.html

 

 另外还要说明下,经过我网上的一番胡乱搜索:

  chrome浏览器默认是不支持读取本地文件的,罪孽啊,害的我武断了下。

 

 

 好了问题处理完了,看收获:

1.  任何问题的出现都是有原因的,多多调试,多多搜索(谁叫当前互联网这么发达呢  

2. ie下采用jqueyr的ajax加载本地文件时需要注意。

3. chrome浏览器不支持本地xml文件加载

4.jquery解析xml的方式为,将xml转化为dom,然后就可以像操作html一样的操作了

 

另外:  

jquery解析XML字符串或XML文件的方法

读取XML字符串:

例如:

  $(document).ready(function(){  

  var xml = "<xml><root><record><name>liubl</name></record><record><name>chencp</name</record></root></xml>";
  //var xml="<table><tr><td>100<td></tr></table>";  //也可直接识别Table
  var obj = $(xml).find("record");  
  });

注意:一定要在外面包一层xml,这样jquery才能被识别,并且xml中还需要有一个根节点即root或其它可自定义。

我试了下加<?xml version=\"1.0\" encoding=\"UTF-8\"?>  貌似也起作用

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值