昨天,我學習了利用AJAX解析XML檔案。剛開始,我把田老師發給我們的樣本--利用AJAX解析一個簡單的返回時間的XML檔案所包含的所有檔案放在iis伺服器下面,通過瀏覽器訪問,能夠正常解析。當時,我心裡覺得利用AJAX解析XML檔案並不困難嘛!但是,當我嘗試著去解析一個文檔結構更複雜的bbc.xml檔案,在程式的編寫,尤其是調試過程中卻遇到了沒有想到的困難,也犯了不少的錯誤!在編寫程式前,我的思路還是比較清晰的。要用AJAX成功解析一個XML檔案,有三個步驟:第一是建立非同步請求獲得伺服器端的這個XML檔案;第二是如何去解析這個XML檔案;第三是運用DOM去呈現第二部解析所獲得的XML檔案的資料.當我懷著高興的心情按照自己心中的想法編寫好程式後,放在IIS下面,在firefox訪問時,卻發現countryNodes[i],後來才發現我是把HTMLDOM和XMLDOM給混淆了,xmlDoc.getElementsByTagName(“country”)寫成了document.getElementsByTagName(“country”)。還有我在編程之前根本沒有注意到bbc.xml檔案Country節點下有些節點的文本節點為空白,這樣我就導致了我統一的firstNode.nodeValue獲得文本節點的值時,firebug總是報找不到firstNode的錯。
在程式的編寫過程中,還犯了很多的錯誤,如把節點遍曆時的迴圈次數弄錯了,多一個等號導致多迴圈一次報對象為空白的錯誤。不注意在建立對象時,測試該對象是否存在的。不過在這個過程中還是有蠻多收穫的,在田老師的指導下學會了運用DOM解析和呈現資料,如學會了運用createElement(),createTextNode(),appendChild()幾個很常用也是很有用的方法。另外在程式的調試過程中,也學到了一些經驗,如運用alert()輸出變數的值,局部調試函數代碼是否起作用在放入這個程式中調試。此外,還懂得了如何提交代碼可重用性和程式的可擴充性,那就是要將相同功能的代碼寫成一個帶參數的函數,然後放在需要的地方,傳入不同的參數進行調用。另外在函數調用時,就幾個慘痛的教訓需要汲取,如將變數名和字串混為一談,以及利用table呈現資料時不帶上<tbody></tbody>標籤等。這些小的細節須在以後的程式的編寫時多多注意!看來以後還是要多動手,多總結!