日期:2014-05-16  浏览次数:20286 次

javascript 加载xml文件,在Chrome下不成功,求助!
var browse="";
loadXML = function(fileRoute){
xmlDoc=null;
  if (window.ActiveXObject){
xmlDoc = new ActiveXObject('Msxml2.DOMDocument');
xmlDoc.async=false;
xmlDoc.load(fileRoute);
}
else if (document.implementation && document.implementation.createDocument){
xmlDoc=document.implementation.createDocument('', '', null);
xmlDoc.async=false;
xmlDoc.load(fileRoute); // 24行
}
else {xmlDoc=null;}
return xmlDoc;
}
var xd=loadXML('books.xml');
alert(xd)


Chrome 报错
Uncaught TypeError: Object #<a Document> has no method 'load'
http://192.168.2.48/test/js/jsReadXml.html (line 24)

加分结帖。

------解决方案--------------------
【个人意见,仅供参考】

我找到了一个类似的帖子,以下为转载:



Google Chrome 下面不能使用load,下面的代码会报错:

xmlDoc=document.implementation.createDocument('', '', null); 
xmlDoc.async=false; 
xmlDoc.load(fileRoute); // 24行 Google Chrome 下面不能使用load

也就是说,不支持load

////////////////////////////////////////////////////////

想要同时支持Google Chrome + FireFox , 使用下面的方法:

var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("GET",xmlsrc,false);
xmlhttp.send(null);
var xmlDoc = xmlhttp.responseXML.documentElement;

获取一个节点,使用:
var x=xmlDoc.getElementsByTagName("nodename");

读取节点的值,使用:
x[0..i].childNodes[0].nodeValue
------解决方案--------------------
参见http://www.v-ec.com/jslib
源码!