在firefox浏览器下用javascript解析XML

刚接触ajax不久,想通过ajax实现从服务器上动态取得xml数据,然后,在客户端动态更新并显示。
但是,再firefox中,在取得xmlDom后,用在IE下面解析的办法(网上有很多的资料,也可以我的总结),怎么也不能取得标签文本的值。

经过多次实践,才发现了下面的方法是可以实现的。原来很简单(见笑了…………)

服务器返回XML结果如下:
<?xml version="1.0" encoding="UTF-8" ?>
- <citys>
<city>shanghai</city>
<city>tianjin</city>
<city>chengdu</city>
<city>chongqing</city>
<city>hainan</city>
</citys>

==========================================================================
解析如下:

// 取得的是xmlDom对象
var doc = response.responseXML;
         // 根据标签来取得List对象
        var cs = doc.getElementsByTagName("city");     
        alert(cs.length);
       
        for(var i=0;i<cs.length;i++){
          var a = cs[i];
          //alert(a);
          //alert(a.nodeName);
          //alert(a.nodeValue);
          var b = a.childNodes;
          (我的疑问:为什么需要取得b,cs[i]不就是一个city的对象了,为什么还需要取得数组,然后再取其元素,疑惑中)
          //alert(b);
          var c=b[0];
          alert(c.nodeValue);
        }

cs取得的结果应该是:
<city>shanghai</city>
<city>tianjin</city>
<city>chengdu</city>
<city>chongqing</city>
<city>hainan</city>
city Element对象的一个集合。
所以,对于a来说,那么就应该是
<city>shanghai</city>
每一个city Element元素的对象了,但是,错了。此处得到的是一个
Element标签元素的一个数组。
也就是说用childNodes方法取得的对象永远是数组对象。那么,你想遍历其中元素的话,就需要用c对象来取。

本例子源代码下载

来源于:http://www.blogjava.net/zhyiwww/archive/2008/06/02/205376.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值