JavaScript解析读取XML文件,主要就是加载并解析XML文件,然后就可以测试解析的XML文件的内容,打印输出来。
在线演示:http://demo.jb51.net/js/2012/readxml/
注:测试的时候需要在网站中测试,iis或apache中,注意不要本地双击运行测试
index.htm
xml文件
没有用TABLE ,是因为显示倒了,所以设置了一个变量,然后显示!值得今后借签!
下面是另外一个例子:
编写了一个JavaScript的类来实现读取一个XML文件中的数据,实现代码如下所示:
<script> <BR>/** <BR>* @author Shirdrn <BR>*/ <BR>function XMLDoc(){}; // 定义一个XMLDoc类 <BR>XMLDoc.prototype.xmlFile = ""; // xmlFile为XMLDoc的一个成员,是指“.xml”文件 <BR>XMLDoc.prototype.parseXMLDoc = function(){ // 加载解析XML文件的成员方法 <BR>var docParser; <BR>if(window.ActiveXObject) { // IE浏览器支持 <BR>docParser = new ActiveXObject("Microsoft.XMLDOM"); <BR>docParser.async = "false"; <BR>docParser.load(this.xmlFile); <BR>return docParser; <BR>} <BR>else if(window.DOMParser) { // Mozillia浏览器支持 <BR>docParser = new DOMParser() <BR>return docParser.parseFromString(this.xmlFile,"text/xml"); <BR>} <BR>else { // 如果不是IE和Mozillia浏览器则无法解析,返回false。 <BR>return false; <BR>} <BR>} <BR>XMLDoc.prototype.print = function(readTagName,readTagCnt) { // 打印输出读取的XML文件的内容信息 <BR>var xmlDoc = this.parseXMLDoc(); // 调用成员方法parseXMLDoc()加载解析XML文件 <BR>var users = xmlDoc.getElementsByTagName(readTagName); // 获取指定标签名称的数据的一个数组users <BR>for(var i=0 ; i<users.length ; i++) { // 双重循环迭代输出 <BR>document.write("<B>第" + (i+1) + "条记录信息:<BR>"); <BR>for(var j=0 ; j<readTagCnt ; j++) { <BR>var tagname = users[i].childNodes[j].tagName; <BR>var textvalue = users[i].childNodes[j].text; <BR>document.write(tagname + " = " + textvalue + ".<BR>"); <BR>} <BR>} <BR>} <br><br>var xmlDoc = new XMLDoc(); // 创建一个XMLDoc了IDE对象实例 <BR>xmlDoc.xmlFile = "user.xml"; // 设置对象实例的成员变量的数据 <BR>xmlDoc.print("user",6); // 打印输出 <BR></script>
其中,我们测试使用的XML文件user.xml的内容如下所示:
-
-
22240319830000
Shirdrn
26
男
shirdrn@hotmail.com
13843140000
-
22040319860001
Linda
23
女
linda@hotmail.com
13843140002
运行测试程序,解析结果输出如下所示:
第1条记录信息:
id = 22240319830000.
name = Shirdrn.
age = 26.
gender = 男.
email = shirdrn@hotmail.com.
phone = 13843140000.
第2条记录信息:
id = 22040319860001.
name = Linda.
age = 23.
gender = 女.
email = linda@hotmail.com.
phone = 13843140002.
在解析XML文件的时候,要保证对不同类型的浏览器提供支持,这里主要对IE和Mozillia浏览器,否则可能无法解析。
关于其它的说明,可以参看程序中的注释。