`
yhz61010
  • 浏览: 552287 次
  • 来自: -
博客专栏
63c13ecc-ef01-31cf-984e-de461c7dfde8
libgdx 游戏开发
浏览量:11999
社区版块
存档分类
最新评论

在IE中创建DOM并载入XML

    博客分类:
  • HTML
阅读更多
在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.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 = "<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.onload=function(){

xmldoc.onload =  createTable(xmldoc);

       }

xmldoc.load(url);

   }

}

</script>
分享到:
评论

相关推荐

    JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML

    一、IE中的XML DOM支持 IE对XML的支持是基于ActiveX的MSXML库。 1、DOM创建 对每个新版本的MSXML,都会创建出不同的XML DOM对象,所以尽量选择新的XML DOM版本。 2、载入XML 载入XML分两种,即: 载入XML字符串:...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    在XML中,就是要将网页也作为一个对象来操作和控制,我们可以建立自己的对象和模板。与对象进行交流,如何命令对象,就要用到API。API全称Application Programming Interface,它是访问和操作对象的规则。而DOM就是...

    javascript完全学习手册2 源码

    9.2.2 IE中的XMLDOM支持 9.2.3 Mozilla中XMLDOM支持 9.2.4 XMLDOM实例 9.3 XPath 9.3.1 XPath概述 9.3.2 IE中的XPath支持 9.3.3 Mozilla中的XPath支持 9.4 XSLT 9.4.1 XSLT概述 9.4.2 IE中的XSLT...

    javascript完全学习手册1 源码

    9.2.2 IE中的XML DOM支持 232 9.2.3 Mozilla中XML DOM支持 237 9.2.4 XML DOM实例 241 9.3 XPath 247 9.3.1 XPath概述 247 9.3.2 IE中的XPath支持 249 9.3.3 Mozilla中的XPath支持 249 9.4 XSLT 254 9.4.1 XSLT概述 ...

    精通JavaScript

    IE 5或更高版本 Mozilla Firefox 1.5.0.3或更高版本 服务器采用IIS5.1 或以上版本 数据库使用MS Access 2000以上 2.本书所附光盘实例代码: 第1章(\第1章) 查看1.2.htm中noscript显示效果的方法如下: 1.将...

    jquery-1.1.3 效率提高800%

    在jQuery 1.2版本中,如果你指明了一个JSONP回调函数,你就可以从其它的域中载入JSON类型的数据,写法类似于 "myurl?callback=?" 。jQuery会自动调用正确的方法名称来代替查询字符串,执行你指定的回调函数。...

    《程序天下:JavaScript实例自学手册》光盘源码

    9.30 动态创建表格并实现分页 9.31 删除表格指定行 9.32 设置表格的交替行颜色 9.33 双击单元格变为可编辑 9.34 鼠标经过表格时列变色 9.35 鼠标选择表格中的多行 9.36 使用JavaScript向表格中写入数据 9.37 类C# ...

    程序天下:JavaScript实例自学手册

    9.30 动态创建表格并实现分页 9.31 删除表格指定行 9.32 设置表格的交替行颜色 9.33 双击单元格变为可编辑 9.34 鼠标经过表格时列变色 9.35 鼠标选择表格中的多行 9.36 使用JavaScript向表格中写入数据 9.37 类C# ...

    jQuery完全实例.rar

    在这个函数的内部,是通过临时创建一个元素,并将这个元素的 innerHTML 属性设置为给定的标记字符串,来实现标记到 DOM 元素转换的。所以,这个函数既有灵活性,也有局限性。 jQuery 代码: $("&lt;div&gt;&lt;p&gt;Hello&lt;/p&gt;...

    精通JS脚本之ExtJS框架.part2.rar

    15.5 在IE中使用Firebug 15.5.1 前端调试利器DebugBar 15.5.2 IE下的优秀JavaScript调试工具Companion.JS 15.5.3 DebugBar和Companion.JS的基本操作 15.6 调试技巧 15.6.1 在Firebug中直接调试脚本 15.6.2 ...

    JavaScript应用177例

    代码说明:本章代码只能在Mozilla Firefox中运行。 7.1.htm 事件流 7.2.htm DOM2鼠标事件 7.3.htm 取消默认动作 7.4.htm 创建DOM2事件 第8章(\cha08) 8.1.htm 页面...

    精通JS脚本之ExtJS框架.part1.rar

    15.5 在IE中使用Firebug 15.5.1 前端调试利器DebugBar 15.5.2 IE下的优秀JavaScript调试工具Companion.JS 15.5.3 DebugBar和Companion.JS的基本操作 15.6 调试技巧 15.6.1 在Firebug中直接调试脚本 15.6.2 ...

    js使用小技巧

    创建元素 document.createElement("SPAN"); 根据鼠标获得元素: document.elementFromPoint(event.x,event.y).tagName=="TD document.elementFromPoint(event.x,event.y).appendChild(ms) 窗体图片 document...

    精易模块[源码] V5.15

    6、修复“网页_创建快捷方式”在win7以上系统不能自定义图标的BUG,感谢易友【蓝风】反馈。 7、修复“进制_十六到十”不支持长整数的BUG。 8、新增“类_时钟”,类似易语言自带时钟控件,可设置时钟周期。 MD5:E31C...

Global site tag (gtag.js) - Google Analytics