JS解析XML文件和XML字符串

JS解析XML文件

 

< script type = ' text/javascript ' >
    loadXML 
=   function (xmlFile){
        
var  xmlDoc = null ;
        
// 判断浏览器的类型
         // 支持IE浏览器
         if ( ! window.DOMParser  &&  window.ActiveXObject){
            
var  xmlDomVersions  =  [ ' MSXML.2.DOMDocument.6.0 ' , ' MSXML.2.DOMDocument.3.0 ' , ' Microsoft.XMLDOM ' ];
            
for ( var  i = 0 ;i < xmlDomVersions.length;i ++ ){
                
try {
                    xmlDoc 
=   new  ActiveXObject(xmlDomVersions[i]);
                    
break ;
                }
catch (e){
                }
            }
        }
        
// 支持Mozilla浏览器
         else   if (document.implementation  &&  document.implementation.createDocument){
            
try {
                
/*  document.implementation.createDocument('','',null); 方法的三个参数说明
                 * 第一个参数是包含文档所使用的命名空间URI的字符串; 
                 * 第二个参数是包含文档根元素名称的字符串; 
                 * 第三个参数是要创建的文档类型(也称为doctype)
                 
*/
                xmlDoc 
=  document.implementation.createDocument( '' , '' , null );
            }
catch (e){
            }
        }
        
else {
            
return   null ;
        }

        
if (xmlDoc != null ){
            xmlDoc.async 
=   false ;
            xmlDoc.load(xmlFile);
        }
        
return  xmlDoc;
    }
< / script>

 

 

JS解析XML字符串

 

< script type = ' text/javascript ' >
    loadXML 
=   function (xmlString){
        
var  xmlDoc = null ;
        
// 判断浏览器的类型
         // 支持IE浏览器 
         if ( ! window.DOMParser  &&  window.ActiveXObject){    // window.DOMParser 判断是否是非ie浏览器
             var  xmlDomVersions  =  [ ' MSXML.2.DOMDocument.6.0 ' , ' MSXML.2.DOMDocument.3.0 ' , ' Microsoft.XMLDOM ' ];
            
for ( var  i = 0 ;i < xmlDomVersions.length;i ++ ){
                
try {
                    xmlDoc 
=   new  ActiveXObject(xmlDomVersions[i]);
                    xmlDoc.async 
=   false ;
                    xmlDoc.loadXML(xmlString); 
// loadXML方法载入xml字符串
                     break ;
                }
catch (e){
                }
            }
        }
        
// 支持Mozilla浏览器
         else   if (window.DOMParser  &&  document.implementation  &&  document.implementation.createDocument){
            
try {
                
/*  DOMParser 对象解析 XML 文本并返回一个 XML Document 对象。
                 * 要使用 DOMParser,使用不带参数的构造函数来实例化它,然后调用其 parseFromString() 方法
                 * parseFromString(text, contentType) 参数text:要解析的 XML 标记 参数contentType文本的内容类型
                 * 可能是 "text/xml" 、"application/xml" 或 "application/xhtml+xml" 中的一个。注意,不支持 "text/html"。
                 
*/
                domParser 
=   new   DOMParser();
                xmlDoc 
=  domParser.parseFromString(xmlString,  ' text/xml ' );
            }
catch (e){
            }
        }
        
else {
            
return   null ;
        }

        
return  xmlDoc;
    }
< / script>

 

测试XML

 

<? xml version="1.0" encoding="utf-8"  ?>
< DongFang >
  
< Company >
    
< cNname > 1 </ cNname >
    
< cIP > 1 </ cIP >
  
</ Company >
  
< Company >
    
< cNname > 2 </ cNname >
    
< cIP > 2 </ cIP >
  
</ Company >     
  
< Company >
    
< cNname > 3 </ cNname >
    
< cIP > 3 </ cIP >
  
</ Company >
  
< Company >
    
< cNname > 4 </ cNname >
    
< cIP > 4 </ cIP >
  
</ Company >
  
< Company >
    
< cNname > 5 </ cNname >
    
< cIP > 5 </ cIP >
  
</ Company >
  
< Company >
    
< cNname > 6 </ cNname >
    
< cIP > 6 </ cIP >
  
</ Company >
</ DongFang >

 

 

使用方法

 var xmldoc=loadXML(text.xml)

 var elements = xmlDoc.getElementsByTagName("Company");

 for (var i = 0; i < elements.length; i++) {
                var name = elements[i].getElementsByTagName("cNname")[0].firstChild.nodeValue;
                var ip = elements[i].getElementsByTagName("cIP")[0].firstChild.nodeValue;               

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值