在IE中创建DOM并载入XML

在IE中创建DOM并载入XML:
(1)创建XML DOM对象的实例
Microsoft在JavaScript中引入了用于创建ActiveX对象的ActiveXObject类,通过该类可以创建XML DOM对象的实例,代码如下:
var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
(2)载入XML:
Microsoft的XML DOM有两种载入XML的方法:load()和loadXML(),本实例中使用的是load()。

load()方法用于从服务器上载入XML文件,load()方法的语法格式如下:

xmldoc.load(url);

参数说明

xmldoc:为XML DOM对象的实例。

url:为XML文件的名称。需要注意的是:load()方法只可以载入同包含JavaScript的页面存储于同一服务器上的文件。

在载入时还可以采用同步或异步两种模式,默认情况下,文件按照异步模式载入,如果需要进行同步载入,可以设置async属性为False。本实例采用的是默认模式,即异步模式。

在异步载入文件时,还需要使用readyState属性和onreadystatechange事件处理函数,这样可以保证在DOM完全载入后执行其他操作(例如本例,调用自定义的JavaScript函数createTable()将载入到DOM中的XML取出来并以表格的形式显示在页面中),代码如下:

xmldoc.onreadystatechange = function() {

if(xmldoc.readyState == 4) createTable(xmldoc);

}

loadXML()方法可直接向XML DOM输入XML字符串,例如:

xmldoc.loadXML("<root><son/></root>");

在Mozilla中创建DOM并载入XML。

(1)创建XML DOM对象的实例

DOM标准指出使用document.implementation对象的createDocument()方法可以创建XML DOM对象的实例,代码如下:

var xmldoc = document.implementation.createDocument("", "", null);

createDocument()方法包括3个参数,第一个参数用于指定文件的命名空间URL;第二个参数用于指定文件元素的标签名;第3个参数用于指定文档类型对象(因为Mozilla中还没有对文档类型对象的支持,所以总是null)。

(2)载入XML

Mozilla只支持一种载入XML的方法:load()。Mozilla中的load()方法和IE中的load()方法工作方式一样,只要指定载入的XML文件,以及是同步还是异步模式载入即可。

Mozilla的XML DOM会在文件完全载入后触发load事件,也就是说必须使用onload事件处理函数来判断DOM何时完全载入,这样可以保证在DOM完全载入后执行其他操作(例如本例,调用自定义的JavaScript函数createTable()将载入到DOM中的XML取出来并以表格的形式显示在页面中),代码如下:

xmldoc.οnlοad=function(){

xmldoc.onload = createTable(xmldoc);

}

Mozilla不支持IE中的onreadystatechange事件,也不存在readyState属性从1到4的变化过程。当文档加载完成之后,DOM对象将被触发load事件,通常在load事件的处理函数中进行XML文档的处理,以下给出了相关的示例代码。
var doc = document.implementation.createDocument("", "", null);
doc.load("books.xml");
doc.onload = function() {
// 加载XML完成
};
在Mozilla中可以通过加载XML字符串的方式加载XML文档。Mozilla不支持IE中的loadXML方法,它是通过DOMParser对象加载XML字符串生成DOM对象的,以下是在Mozilla中通过字符串方式加载XML文档的示例。
// XML字符串
var xmlString = "<Books><Book><Title>Ajax In Action</Title>
<Author>Dave Crane</Author></Book><Book><Title>
Professional Ajax</Title><Author>Nicholas C.Zakas</Author>
</Book></Books>";
// 创建DOMParser对象
var parser = new DOMParser();
// 解析字符串,创建DOM对象
var doc = parser.parseFromString(xmlString, "text/xml");
编写自定义的JavaScript函数readXML(),用于读取XML文件并显示在页面中。在该函数中,首先实现在IE或Mozilla浏览器中创建DOM,然后把指定的XML文件载入到DOM中,最后调用自定义的JavaScript函数createTable()在页面的指定位置显示XML文件的内容,代码如下:

<script language="javascript">

function readXML() {

var url = "goodss.xml";

if(window.ActiveXObject) { //IE

var xmldoc = new ActiveXObject("Microsoft.XMLDOM");

xmldoc.onreadystatechange = function() {

if(xmldoc.readyState == 4) createTable(xmldoc);

}

xmldoc.load(url);

}

// Mozilla......

else if(document.implementation&&document.implementation.createDocument) {

var xmldoc = document.implementation.createDocument("", "", null);

xmldoc.οnlοad=function(){

xmldoc.onload = createTable(xmldoc);

}

xmldoc.load(url);

}

}

</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值