+ -
当前位置:首页 → 问答吧 → JS操作XML遇到的问题,请求帮忙

JS操作XML遇到的问题,请求帮忙

时间:2011-12-03

来源:互联网

在调用加载XML方法的时候,要延迟些时间才能得到正确的值,不延迟就得不到正确值。
看了网络上操作XML的方法 都不需要延迟执行的。真是很纳闷。请求懂的朋友指点下。谢谢

function xmlClass(){
this.fileName="workbook";
this.filePath="Db/";
}

function Xml(){
//读取XML
this.requestXml = function(){
var xmlDoc; 
var xmlFile = this.filePath+this.fileName+".xml"; 
  if(window.ActiveXObject){  
  xmlDoc = new ActiveXObject('Microsoft.XMLDOM');  
  xmlDoc.async = false;  
  xmlDoc.load(xmlFile);  
  }else if (document.implementation&&document.implementation.createDocument){  
  xmlDoc = document.implementation.createDocument('', '', null);  
  xmlDoc.load(xmlFile);  
  }else{  
  return null;  
  } 
  return xmlDoc; 
}
}
Xml.prototype = new xmlClass();

//类调用
var myXML = new Xml();
myXML.fileName = "workbook";
var XML = myXML.requestXml();
if(XML == null)
{ alert('浏览器不支持')}
else
{

[size=16px]
//alert(list);只有加上这代码延迟了下面代码的执行,就能得到list的长度list.length=6,去掉这代码后,list.length = 0。是什么原因造成的呢[/size]?

list = XML.getElementsByTagName("items");
alert(list.length)
}

作者: EdwardLong   发布时间: 2011-12-03

JScript code
    xmlDoc = document.implementation.createDocument('', '', null); 
    xmlDom.async = false; //同步载入
    xmlDoc.load(xmlFile);

在非ie浏览器中也需要指定同步加载。

作者: zswang   发布时间: 2011-12-04