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

在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 DOM 操作.doc

    载入 XML 数据:在IE中,可以使用load方法从文件载入XML数据,默认采用异步方式。load方法可以载入xml文件,loadXML方法可以载入xml字符串。 ```javascript oXmlDom.async = false; oXmlDom.load("example.xml"); //...

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

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

    Javascript操作XML和HTML

    在示例中,创建了一个XML字符串,并通过JavaScript将其转换为DOM对象,然后使用各种属性和方法来访问和操作DOM树。 - `root.xml`:获取并显示整个根元素的XML文本。 - `root.text`:获取并显示根元素及其子元素的...

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

    - 示例展示了如何创建XML DOM对象,以及如何加载XML字符串和文件,并处理加载过程中的错误。 对于其他浏览器,如Mozilla(Firefox),它们通常使用`XMLHttpRequest`对象或`DOMParser`对象来处理XML。`...

    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概述 ...

    Ajax 动态载入html页面后不能执行其中的js快速解决方法

    在Web开发中,Ajax(Asynchronous JavaScript and XML)技术常用于实现页面的异步更新,提升用户体验。然而,一个常见的问题是在使用Ajax动态载入HTML页面后,其中的JavaScript代码可能无法正常执行。这是因为默认...

    一个简单的相册

    在IT行业中,创建一个“简单的相册”是一个常见的任务,特别是在网页开发或者移动应用开发中。这个项目的核心目标是实现图片的展示和切换,让用户能够浏览一系列的图像。以下是对这个相册项目的详细分析和相关知识点...

    精通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# ...

    Ajax,UTF-8还是GB2312 eval 还是execScript

    `execScript`在IE浏览器中可用,但在其他现代浏览器中可能不支持。 描述中提出了一种解决方案,将脚本分为`onStart`和`onEnd`两个部分,分别代表页面加载前和加载后要执行的脚本。通过修改XML结构来组织这些脚本,...

    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 ...

    DOJO Release 1.02

    AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。DOJO 利用 AJAX 实现了页面的异步交互,提高了用户体验,减少了服务器负担。 2. **DOJO 框架核心组件** ...

    AngularJS初始化过程分析(引导程序)

    在使用ng-app指令时,如果需要在IE浏览器下正常工作,还需要在标签中添加xml-namespace前缀(例如ng:),这是因为历史原因导致的兼容性问题。不过,AngularJS官方文档中明确表示不推荐继续使用这种旧版语法。 五、...

Global site tag (gtag.js) - Google Analytics