• 复杂xml字符串解析


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <HTML xmlns="http://www.w3.org/1999/xhtml">
     <HEAD>
      <TITLE> New Document </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
      <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 = new  DOMParser();
                    xmlDoc = domParser.parseFromString(xmlString, 'text/xml');
                }catch(e){
                }
            }
            else{
                return null;
            }
    
            return xmlDoc;
        }
    
        //对xml对象进行判断
        checkXMLDocObj = function(xmlString){
            var xmlDoc = loadXML(xmlString);
            
            if(xmlDoc==null){
                alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
                //window.location.href='某某地址(比如首页)';
            }
            return xmlDoc;
        }
        
        //参数1:控件id号,参数2:理解为定位节点
        initializeSelect = function(oid,xPath){
            var xmlstr="<?xml version='1.0' encoding='utf-8'?>"+
            "<Organization>"+
            "<Department coding='001' name='TR4版本11月11号' modifytime='1388125467' MaxDepID='0' sn=''>"+
                "<Device id='1000002' />"+
                "<Channel id='1000002$1$0$0' />"+
                "<Channel id='1000002$1$0$1' />"+
                "<Channel id='1000002$1$0$2' />"+
                "<Channel id='1000002$1$0$3' />"+
            "</Department>"+
            "<Devices MaxDevID='1000'>"+
                   "<Device id='1000002' type='65541' name='66' manufacturer='1' model='' ip='172.6.5.66' port='37777' user='admin' "+
                   "password='admin' desc='' status='1' logintype='' regid='' proxyport='-1' unitnum='-1' deviceCN='' deviceSN='' deviceIp='172.6.5.66' devicePort='37777' devMaintainer='' devMaintainerPh='' rights='0'>"+
        "<UnitNodes index='0' channelnum='4' streamType='-1' subType='0' type='1'>"+
                           "<Channel id='1000002$1$0$0' name='66_1' desc='' status='0' channelType='1' channelSN='30001' rights='100000011001111' cameraType='1' CtrlId='30001' latitude='' longitude='' viewDomain='' />"+
                           "<Channel id='1000002$1$0$1' name='66_2' desc='' status='0' channelType='1' channelSN='30002' rights='100000011001111' cameraType='1' CtrlId='30002' latitude='' longitude='' viewDomain='' />"+
                           "<Channel id='1000002$1$0$2' name='66_3' desc='' status='0' channelType='1' channelSN='30003' rights='100000011001111' cameraType='1' CtrlId='30003' latitude='' longitude='' viewDomain='' />"+
                           "<Channel id='1000002$1$0$3' name='66_4' desc='' status='0' channelType='1' channelSN='30004' rights='100000011001111' cameraType='1' CtrlId='30004' latitude='' longitude='' viewDomain='' />"+
                    "</UnitNodes>"+
                "</Device>"+
            "</Devices>"+
        "</Organization>";
    
    
            var xmlDoc = checkXMLDocObj(xmlstr);
    
            var n;
            var l;
            var e = document.getElementById(oid);//得到下拉列表框控件
            if(e!=null){
                n = xmlDoc.getElementsByTagName("Channel");
               
                l = n.length;
                
                 for(var i=0;i<l;i++){
                    //alert(n[i].attributes[0].text);
                    alert(n[i].attributes[0].value);
                } 
                
                
    
            }
        }
      </script>
     </HEAD>
    
     <BODY onload="initializeSelect('company','Channel')">
      <select id='company' name='company' onChange='showValue()'>
        <option selected='selected'></option>
      </select>
     </BODY>
    </HTML>

    更多api查看

    http://www.w3school.com.cn/xmldom/prop_attr_value.asp

  • 相关阅读:
    android cocos2d-x视频
    Android OpenGL 学习笔记 --开始篇
    Nginx配置详解
    扩展RBAC用户角色权限设计方案
    几种序列化与Get、Set方法的关系
    Kettle大量数据快速导出的解决方案(利用SQL导出百万级数据,挺快的)
    SpringBoot 标准集成MyBatis的2种方式
    Apache Commons io FileUtils 详解
    SpringBoot在工具类中读取配置文件(ClassPathResource)
    利用guava封装RateLimiter 令牌桶算法(AOP实现)
  • 原文地址:https://www.cnblogs.com/longsanshi/p/9512751.html
Copyright © 2020-2023  润新知