当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JavaScript 解析读取XML文档

Javascript
清华大学出版的事半功倍系列 javascript全部源代码
一个不错的渐隐文字效果
JavaScript多线程的实现方法
广告代码静态化js通用函数
“增强js程序代码的健壮性”之我见大量示例代码
国外JavaScript经典封装集合整理
Highslide JS
一个漂亮的下拉列表,去掉了灰色倒三角按钮
Add a Picture to a Microsoft Word Document
Javascript注入技巧
用JS实现HTML标签替换效果
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
模拟弹出菜单的代码
收藏Javascript中常用的55个经典技巧
Track Image Loading效果代码分析
js小技巧--自动隐藏红叉叉
JavaScript延时效果比较不错的
非常酷的js图形渐隐导航菜单栏
科讯商业版中用到的ajax空间与分页函数
js实现的修改div里img标签的src属性

Javascript 中的 JavaScript 解析读取XML文档


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 398 ::
收藏到网摘: n/a

应项目之需求,需用JS操作XML文档,遂上网查资料,感觉这篇文章还不错,特转载到此地,与大家共享! JavaScript解析读取XML文件,主要就是加载并解析XML文件,然后就可以测试解析的XML文件的内容,打印输出来。
编写了一个JavaScript的类来实现读取一个XML文件中的数据,实现代码如下所示:
复制代码 代码如下:

<script>
/**
* @author Shirdrn
*/
function XMLDoc(){}; // 定义一个XMLDoc类
XMLDoc.prototype.xmlFile = ""; // xmlFile为XMLDoc的一个成员,是指“.xml”文件
XMLDoc.prototype.parseXMLDoc = function(){ // 加载解析XML文件的成员方法
var docParser;
if(window.ActiveXObject) { // IE浏览器支持
docParser = new ActiveXObject("Microsoft.XMLDOM");
docParser.async = "false";
docParser.load(this.xmlFile);
return docParser;
}
else if(window.DOMParser) { // Mozillia浏览器支持
docParser = new DOMParser()
return docParser.parseFromString(this.xmlFile,"text/xml");
}
else { // 如果不是IE和Mozillia浏览器则无法解析,返回false。
return false;
}
}
XMLDoc.prototype.print = function(readTagName,readTagCnt) { // 打印输出读取的XML文件的内容信息
var xmlDoc = this.parseXMLDoc(); // 调用成员方法parseXMLDoc()加载解析XML文件
var users = xmlDoc.getElementsByTagName(readTagName); // 获取指定标签名称的数据的一个数组users
for(var i=0 ; i<users.length ; i++) { // 双重循环迭代输出
document.write("<B>第" + (i+1) + "条记录信息:</B><BR>");
for(var j=0 ; j<readTagCnt ; j++) {
var tagname = users[i].childNodes[j].tagName;
var textvalue = users[i].childNodes[j].text;
document.write(tagname + " = " + textvalue + ".<BR>");
}
}
}
var xmlDoc = new XMLDoc(); // 创建一个XMLDoc了IDE对象实例
xmlDoc.xmlFile = "user.xml"; // 设置对象实例的成员变量的数据
xmlDoc.print("user",6); // 打印输出
</script>

其中,我们测试使用的XML文件user.xml的内容如下所示:
复制代码 代码如下:

<?xml version="1.0" encoding="utf-8" ?>
- <users>
- <user>
<id>22240319830000</id>
<name>Shirdrn</name>
<age>26</age>
<gender>男</gender>
<email>[email protected]</email>
<phone>13843140000</phone>
</user>
- <user>
<id>22040319860001</id>
<name>Linda</name>
<age>23</age>
<gender>女</gender>
<email>[email protected]</email>
<phone>13843140002</phone>
</user>
</users>

运行测试程序,解析结果输出如下所示:
复制代码 代码如下:

第1条记录信息:
id = 22240319830000.
name = Shirdrn.
age = 26.
gender = 男.
email = [email protected].
phone = 13843140000.
第2条记录信息:
id = 22040319860001.
name = Linda.
age = 23.
gender = 女.
email = [email protected].
phone = 13843140002.

在解析XML文件的时候,要保证对不同类型的浏览器提供支持,这里主要对IE和Mozillia浏览器,否则可能无法解析。
关于其它的说明,可以参看程序中的注释。