利用AJAX解析XML文件并且用 DOM呈现
昨天,我学习了利用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>标签等。这些小的细节须在以后的程序的编写时多多注意!看来以后还是要多动手,多总结!