IE无法解析XML文件的解决办法

在项目中用到类似结构的XML文件
<?xml version="1.0" encoding="utf-8"?>
<root>
  <record>
    <AssetName>test1</AssetName>
    <AssetBrand>test1</AssetBrand>
    <AssetStandard>test1</AssetStandard>
    <AssetMount>test1</AssetMount>
    <AssetSuppliers>test1</AssetSuppliers>
    <SpecialRequirements>test1</SpecialRequirements>
    <InstallSite>test1</InstallSite>
    <ApplyOrShift>采购</ApplyOrShift>
    <Configuration>test1</Configuration>
    <Register>确认到货</Register>
  </record>
</root>
$(xml).find("record").each(function() {
                var ele = $(this);
……
}进行解析的时候,在火狐、chrome等能够正常解析,但是在IE中却提示错误,在 http://www.newmediafun.com/2009/07/parsing-xml-with-jquery-in-internet-explorer/上找到解决办法
$. ajax ( {
 url : 'xml/myXML.xml' ,
 dataType : ($. browser. msie ) ? "text" : "xml" ,
 timeout : 1000 ,
 error : function (data ) {
  alert ( 'Error occurred loading the XML' ) ;
  } ,
 success : function (data ) {
  var xml ;
  if ( typeof data == "string" ) {
   xml = new ActiveXObject ( "Microsoft.XMLDOM" ) ;
   xml. async = false ;
   xml. loadXML (data ) ;
  } else {
   xml = data ;
  }
  // parse the xml
} ) ;
根据该方法的修改

var xml;
            if (jQuery.browser.msie) {
                xml = new ActiveXObject("Microsoft.XMLDOM");
                xml.async = false;
                xml.loadXML(test);
            }
            else {
                xml = test;
            }

            $(xml).find("record").each(function() {
                var ele = $(this);

……
}
另外,针对有的网友提出的在root节点外面再套一层<xml></xml>的方法也试过,在root下存在两个及其以上节点时没有问题,但是在root下只有一个rocord节点的时候还是有问题。所以还是推荐上面这种方法。不过在IE7以下的浏览器中,还需要完善xml对象的创建方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值