在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(““);
在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.onload=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 = “Ajax In Action
    Dave Crane
<br>    Professional AjaxNicholas C.Zakas
   
“;
// 创建DOMParser对象
var parser = new DOMParser();
// 解析字符串,创建DOM对象
var doc = parser.parseFromString(xmlString, “text/xml”);
编写自定义的JavaScript函数readXML(),用于读取XML文件并显示在页面中。在该函数中,首先实现在IE或Mozilla浏览器中创建DOM,然后把指定的XML文件载入到DOM中,最后调用自定义的JavaScript函数createTable()在页面的指定位置显示XML文件的内容,代码如下:

坚持原创及高品质技术分享,您的支持将鼓励我继续创作!