剛接觸ajax不久,想通過ajax實現(xiàn)從服務(wù)器上動態(tài)取得xml數(shù)據(jù),然后,在客戶端動態(tài)更新并顯示。
但是,再firefox中,在取得xmlDom后,用在IE下面解析的辦法(網(wǎng)上有很多的資料,也可以我的總結(jié)),怎么也不能取得標簽文本的值。
經(jīng)過多次實踐,才發(fā)現(xiàn)了下面的方法是可以實現(xiàn)的。原來很簡單(見笑了…………)
服務(wù)器返回XML結(jié)果如下:
? <?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;
???????? // 根據(jù)標簽來取得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的對象了,為什么還需要取得數(shù)組,然后再取其元素,疑惑中)????????? //alert(b);
????????? var c=b[0];
????????? alert(c.nodeValue);
??????? }
cs取得的結(jié)果應(yīng)該是:
?<city>shanghai</city>
?<city>tianjin</city>
?<city>chengdu</city>
?<city>chongqing</city>
?<city>hainan</city>
city Element對象的一個集合。
所以,對于a來說,那么就應(yīng)該是
?<city>shanghai</city>
每一個city Element元素的對象了,但是,錯了。此處得到的是一個
Element標簽元素的一個數(shù)組。
也就是說
用childNodes方法取得的對象永遠是數(shù)組對象。那么,你想遍歷其中元素的話,就需要用c對象來取。
本例子源代碼下載|----------------------------------------------------------------------------------------|
版權(quán)聲明 版權(quán)所有 @zhyiwww
引用請注明來源 http://www.tkk7.com/zhyiwww
|----------------------------------------------------------------------------------------|
posted on 2008-06-02 17:40
zhyiwww 閱讀(1946)
評論(0) 編輯 收藏 所屬分類:
javascript 、
ajax