• JavaScript 装载XML到数组


    /*
     * get all nodes's attribute and text
     
    */

    function getAT(nodes){
        
    var XMLData=[];
        
    for(var i=0;i<nodes.length;i++){
            
    var crtNode={};
            crtNode.$name
    =nodes[i].nodeName;        
            
    if(nodes[i].attributes){
                
    for(var j=0;j<nodes[i].attributes.length;j++){
                    debug.innerHTML
    +='<i>'+nodes[i].attributes[j].name+'='+nodes[i].attributes[j].value+'</i><br>';
                    crtNode[nodes[i].attributes[j].name]
    =nodes[i].attributes[j].value;
                }

            }

            
    if(nodes[i].hasChildNodes()){
                
    if(nodes[i].firstChild.nodeType==3){
                    crtNode.$value
    =nodes[i].firstChild.nodeValue;
                }
    else{
                    crtNode.$value
    =null;
                    
    var childNode=getAT(nodes[i].childNodes);
                    debug.innerHTML
    +='<u>'+childNode[0].$name+'</u><br>';
                    crtNode[childNode[
    0].$name]=childNode;
                }

            }

            XMLData.push(crtNode);
        }
        
        
    return XMLData;
    }

    /*
     * Load XML into an array, each item of this array is an object. every object has at least two property: $name which is the xml node name and $value which is the text of the xml node(maybe null). 
     * @usage:
         xml=loadXML('game.xml');
     
    */

    var XMLMSG='';// record error message, when a parse error ouccored
    var _XML='';  // save xml text
    var loadXML = function(xmlFile)
    {    
        
    var xmlDoc;
        
    if(window.ActiveXObject)
        
    {
            xmlDoc 
    = new ActiveXObject('Microsoft.XMLDOM');
            xmlDoc.async 
    = false;
            xmlDoc.load(xmlFile);
        }

        
    else if (document.implementation&&document.implementation.createDocument)
        
    {
            xmlDoc 
    = document.implementation.createDocument(''''null);
            xmlDoc.load(xmlFile);
        }

        
    else
        
    {
            XMLMSG
    ='Sorry, your browser doesn't support XML.'
            
    return false;
        }

        
    if(xmlDoc.parseError.errorCode!=0){
            XMLMSG
    +="<br/>Error Code: ";
            XMLMSG
    +=xmlDoc.parseError.errorCode;
            XMLMSG
    +="<br/>Error Reason: ";
            XMLMSG
    +=xmlDoc.parseError.reason;
            XMLMSG
    +="<br/>Error Line: ";
            XMLMSG
    +=xmlDoc.parseError.line;
            
    return false;
        }

        _XML
    =xmlDoc.documentElement.xml;
        
    var xmlNodes=xmlDoc.documentElement.childNodes;    
        debug.innerHTML
    +='<hr><font color="#ff0000">';
        
    return getAT(xmlNodes);    
    }

    参考文章:
    javascript解析XML的方法 作者:luke 日期:2007-05-31 URL http://www.lukee.cn/article.asp?id=396

  • 相关阅读:
    项目是使用 Microsoft.AspNetCore.App 版本 2.1.20 还原的, 但使用当前设置, 将改用版本
    vs发布排除 文件
    win10部分低功耗蓝牙找不到
    解决JLINK_v8灯不亮 jtag 提示无法识别USB设备
    C# BYTE[] 与16进制字符串互相转换
    【转】阿里云证书资源包申请免费SSL流程(图文教程) 【免费证书申请将切换到证书资源包下】
    使用ApkTool以及dex2jar对apk进行反编译-更新异常以及解决方案
    使用ApkTool
    安装纯净版xp,,优盘装系统提示INF file txtsetup.sif的解决方法
    应急灾害管理相关英文关键词梳理--仅作为笔记
  • 原文地址:https://www.cnblogs.com/lein317/p/5067670.html
Copyright © 2020-2023  润新知