日期:2014-05-17  浏览次数:21087 次

加载xml文档的问题。
var xmlDoc;
var isIE = /msie/i.test(navigator.userAgent); 
if(isIE)
{
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}
else
{
  xmlDoc=document.implementation.createDocument("","",null);
}

try 
{
xmlDoc.async=false;
xmlDoc.load("./xmlfiles/xmlFileName.xml");
iTotalPage=xmlDoc.getElementsByTagName("xmlFileName").length;
alert(iTotalPage);
}
catch(e) {alert(e.message)}


我看网上很多人都说以上方法可以支持跨浏览器,但是在safari下不行,提示不认识xmlDoc.load方法。请问该怎么解决?

------解决方案--------------------
function serializeXml(oNode) {
var oSerializer = new XMLSerializer();
return oSerializer.serializeToString(oNode);


IE中的xml存放对当前节点包含的所有XML进行序列化的结果。

在Safari中,有名为XMLSerializer的对象来完成这一功能。该对象提供一个使用JavaScript可访问的serializeToString()方法,使用该方法可以对XML数据进行序列化。


xmlDoc.xml 可用 serializeXml(xmlDoc);代替