zoukankan      html  css  js  c++  java
  • 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;               

    }

  • 相关阅读:
    JS原型链与instanceof底层原理
    流程关系图制作---ProcessOn从入门到精通
    VBA比较两个Excel数据的异同
    C# 通过 Quartz .NET 实现 schedule job 的处理
    C# 通过 Quartz .NET 实现Timer Job并将其注册成为Windows Service
    在.Net Framework中调用Python的脚本方法 (以VB和C#为例)
    用Python建立连接直接读取与更改Rockwell Control Logix Controller的tag值
    C#通过第三方组件生成二维码(QR Code)和条形码(Bar Code)
    如何根据条件来确定某个字段是否应该被序列化
    在Asp.Net MVC 中如何用JS访问Web.Config中appSettings的值
  • 原文地址:https://www.cnblogs.com/chjw8016/p/2104269.html
Copyright © 2011-2022 走看看