javascript xml 文档处理

原创 2010年06月06日 13:58:00

前几天了解了下javascript对于xml解析的一些知识,在这里稍作记录下。这里主要对针对IE、Mozilla进行相关代码编写及测试,不涉及chrome浏览器,因此可能在chrome浏览器相关代码无法正常工作。期间参考了《JavaScript高级程序设计》第15章中的相关知识。

针对chrome浏览器的读取xml文档,需通过XMLHttpRequest对象进行设置,因为在chrome浏览器通过document.implementation.createDocument方法创建的Document对象中并未定义load方法,因此必须通过下述方式获取。
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("GET", file, false);
xmlhttp.send(null);
xmlDoc = xmlhttp.responseXML.documentElement;

IE通过ActiveXObject实现针对xml文档的操作,而Mozilla则通过document.implementation.createDocument对象实现对xml文档的操作。同时IE提供了load及loadXML两个方法访问xml,而Mozilla只提供了load方法进行。我们可以通过改造Mozilla的相关对象实现与IE相同的loadXML方法。

这里要说明的是在创建好xml文档操作的对象后,默认读取xml的模式为异步即async = true;

当async = true即异步模式时,javascript代码不会等待xml文档完全载入后才继续执行代码,那么就可能会出现在使用xml文档对象时,文档还尚未被完全载入的情况。同时IE与Mozilla处理异步模式的方式也不同:
1、针对IE,异步载入文件时,会使用readyState属性和触发onreadystatechange事件处理函数;readyState属性的说明如下:
    0——DOM尚未初始化任何信息;
    1——DOM正在载入数据;
    2——DOM完成了数据载入;
    3——DOM已经可用,不过某些部分可能还不能用;
    4——DOM已经完全被加载,可以使用;
2、针对Mozilla,异步载入时,同样会使用readyState属性,但触发的是onload事件处理函数;但readyState属性的定义不同
    ‘loading’——DOM尚在载入数据;
    ‘complete’——DOM完成加载,可以使用;
那么当使用异步模式时,针对xml文档的处理就应该放在相应的事件处理函数中及readyState标识为完成加载时,而不应该紧接着load方法之后。
当async = false即异步模式时,可以不用考虑上述问题,因为这时候只有文档已经被完全载入后,javascript才会继续执行后面的代码;

针对以上两个问题,显而易见,为了使用javascript对xml文档的操作是要考虑浏览器的。为此可以创建以下代码:


测试代码如下:

测试1、当使用同步模式时

测试2、当使用异步模式时

如果异步模式时仍使用测试1的代码,将不会得不到任何返回值;

XML链接和文档处理代码

  • 2008年07月31日 12:10
  • 10KB
  • 下载

jQuery--文档处理

文档处理 1、内部插入 A.append(B) 将B插入到A的内部后面(之后的串联操作,操作A)                      ....                     ...
  • CSDN_GIA
  • CSDN_GIA
  • 2017-02-02 17:04:13
  • 1006

jquery文档处理(增、删、改、查))

1. 插入  append(content) :将content内容插入到匹配元素内容的最后  prepend(content) :将content内容插入到匹配元素内容的最前 内容...
  • ynw1990
  • ynw1990
  • 2016-09-05 17:44:42
  • 772

jQuery文档处理(二)--复制,替换,包裹

jQuery文档处理(二)–复制,替换,包裹复制 clone() 克隆 even :指示事件处理函数是否会被复制。V1.5以上版本默认值是:false 06_复制节点....
  • daliyuan350649623
  • daliyuan350649623
  • 2016-12-20 17:24:53
  • 399

XML处理指令

“处理指令(PIs)允许文档包含用于应用程序的指令。指令并不是文档字符数据的一部分,但是必须通过应用程序传递”。 处理指令可以用于将信息传递给应用程序。处理指令可以出现在文档任意位置的标记外部。可以...
  • u011971132
  • u011971132
  • 2016-05-20 09:43:35
  • 899

jsonp和xml格式生成与调用

1.jsonp的生成(建立一个jsonp.php)
  • haoyunyun888
  • haoyunyun888
  • 2016-04-29 14:03:48
  • 3702

XML文档处理类(C#)

  • 2010年03月26日 09:51
  • 20KB
  • 下载

Javascript DOM – HTML文档处理

自从开始用jQuery开始,就逐渐地产生了对jQuery的依赖,对原生的一些JavaScript操作也慢慢的忘掉了,这样不好..不好.. 偶尔还是要拿出来温习一下。原文1、创建节点createElem...
  • jianping_shen
  • jianping_shen
  • 2010-12-31 10:14:00
  • 406

使用JavaScript对XML文件进行读写

以学生信息为例子。用到了3个文件studentINFO.html,studentinfo.xml,studentinfoNew.xmlstudentinfo.xml---学生信息   213  asd...
  • epinszteinic
  • epinszteinic
  • 2005-01-23 10:59:00
  • 2693

javascript 操作xml

  • 2010年09月02日 23:26
  • 29KB
  • 下载
收藏助手
不良信息举报
您举报文章:javascript xml 文档处理
举报原因:
原因补充:

(最多只允许输入30个字)