网站制作学习网JS脚本→正文:IE下javascript操作XML
字体:

IE下javascript操作XML

JS脚本 2010/5/4 21:00:24  点击:不统计

<文章来源:www.forasp.cn网站制作学习>

在微软的IE支持XML时,基于ActiveX的MSXML库.MSXML是为开发人员提供winwods平台上首个使用DOM实现开发的,作为一个ActiveX控件,MSXML可以在C++等更多平台和windows的开发平台上。
实例化ActiveX对象的字符串代码: var forasp_xml= new ActiveXObject("Mircrosoft.XmlDom");

1.Dom的创建,根据不同的XML Dom版本,它们的名称也不相同,MSXML目前最新的版本是5.0。//原文章%77w%77%2Ef%6F%72%61%73%70%2E%63n
版本:
MSXML2.DOMDocument.5.0
MSXML2.DOMDocument.4.0
MSXML2.DOMDocument.3.0
MSXML2.DOMDocument
Microsoft.XmlDom
Dom创建代码如下:
function forasp_createxml()
{
var forasp_banben = ["MSXML2.DOMDocument.5.0","MSXML2.DOMDocument.4.0","MSXML2.DOMDocument.3.0","MSXML2.DOMDocument","Microsoft.XmlDom"];
for (var i=0;i<forasp_banben.length;i++)
  {
  try{
    var xmlobj = new ActiveXobject(forasp_banben[i]);
    return xmlobj;
    }
   catch()
    {
    alert("有错误!");
    }
  }
  throw new Error("MSXML is installed on your system");
}
2.载入XML,拿上面创建的xml函数,举例载入xml,代码如下:
var forasp_xml = forasp_createxml();
forasp_xml.loadXML('<root><other></root>');
载入XML文件有两种模式,同步模式和异步模式。同步模式载入XML时,javascript代码会等待文件万千载入后执行,而异步模式载入不会等待,可以使用事件来判断是否完全载入.
同步载入,要设置async特性为false:
forasp_xml.async = false;
forasp_xml.load("http://www.forasp.cn/rss.asp")
异步载入文件,要使用readyState特性和onreadystatechange事件处理函数
readState特性有五种可能的值
0-DOM尚未初始化任何信息
1-DOM正在载入信息
2-Dom完成了数据载入
3-Dom已经可用,不过某些部分可能还不能用
4-Dom已经完全载入,可以使用。
代码:
forasp_xml.onreadystatechange = function()
{
if(forasp_xml.readyState == 4){alert("已经载入完毕");}
}
无论同步还是异步载入xmlload方法都可以接受部分,相对或者整个url
3获取XML
当XML载入Dom后,要把XML取出来,微软为每个XML节点添加了xml特性,它将XML表现形式最为字符串返回.所以要载入XML十分简单。
forasp_xml.load("forasp.xml");
alert(forasp_xml);
如果获取节点内容的话
alert(forasp_xml.documentElements.child.childNOdes[1].xml);
4。解释错误
在尝试xml载入到xmlDom对象中时,无论loadXML还是load()方法,有可能会有xml格式不正确的情况,为此,微软的XML Dom的parseError的特性包含了关于解析XML代码的所有问题信息。
parseError特性实际上是包含以下特性的对象。
errorCode-表示错误类型没有错误代码返回0
filePos-错误发生文件位置
line-错误的行
linepos-遇到错误的那一行上的字符的位置//

 
原文章%77w%77%2Ef%6F%72%61%73%70%2E%63n

reason-对错误的一个解释。
srcText-造成错误的代码
ur-造成错误的文件的URL
举例代码:
if(forasp_xml.parseError!=0)
{
var oError = forasp_xml.parseError;
alert(oError.errorCode+oError.line+oError.linepos+oError.reason);
}
z最好在XML载入后立即检查错误.

<%77w%77%2Ef%6F%72p%73%70%2Ec%6E>

·上一篇:javascript错误和异常 >>    ·下一篇:火狐下javascript操作XML >>
推荐文章
最新文章