薛公子写的转换数组

来源:互联网 发布:大数据人才培养方案 编辑:程序博客网 时间:2024/05/16 01:34
package {
    public class XMLUtilities
    {
        //按深度将XMLList转为一维数组
        public static function XMLListToSimpleArrayByDepth(xmlList:XMLList, depthLimit:int=10):Array{
            var resultArr:Array=new Array();
            for each (var i:XML in xmlList){
                resultArr =XMLToSimpleArrayByDepth(i,resultArr, depthLimit+1);
            }
            return(resultArr);
        }
       
        private static function XMLToSimpleArrayByDepth(xml:XML, targetArr:Array, depthCur:int=10):Array{
            depthCur--;
            for each (var i  in xml.children()){
                if (IsTextNode(i)){
                    targetArr.push(i);
                }else{
                    if (depthCur<=0){continue}
                    targetArr=XMLToSimpleArrayByDepth(i,targetArr, depthCur);
                }
            }
            return(targetArr);
        }
       
      //将xmllist转为一维数组
        public static function XMLListToSimpleArray(xmlList:XMLList):Array{
            var resultArr:Array=new Array();
            var textXMLList:XMLList=xmlList..*.(children().length()===0);
           
            for each (var i:XML in textXMLList){
                resultArr.push(i);
            }
            return(resultArr);
        }

        //将xml转为一维数组
        public static function XMLToSimpleArray(xml:XML):Array{
            var resultArr:Array=new Array();
            var textXMLList:XMLList=xml..*.(children().length()===0);
           
            for each (var i:XML in textXMLList){
                resultArr.push(i);
            }
            return(resultArr);
        }
       
        //按深度将XMLList转为多维数组
        public static function XMLListToComplexArray(xmllist:XMLList):Array{
            var resultArr:Array=new Array();
           
            for each (var i:XML in xmllist){
                if(IsTextNode(i)){
                    resultArr.push(i);
                }else{
                    resultArr.push(XMLToComplexArray(i));
                }
            }
           
            return(resultArr);
        }
       
        //按深度将XML转为多维数组
        public static function XMLToComplexArray(xml:XML):Array{
            var resultArr:Array=new Array();
           
            for each (var i:XML in xml.children()){
                if(IsTextNode(i)){
                    resultArr.push(i);
                }else{
                    resultArr.push(XMLToComplexArray(i));
                }
            }
            return(resultArr);
        }
       
        //判断该节点是否为Text节点
        public static function IsTextNode(xml:XML):Boolean{
            return((xml.children().length()==0)? true:false);
        }
       
        //判断xml节点子节点name的个数。没有则为0
        public static function HasNode(xml:XML,name:String):int{
            return(xml[name].length());
        }
       
        //判断xml节点属性attName的个数。没有则为0
        public static function HasAttribute(xml:XML,attName:String):int{
            return(xml.@[attName].length());
        }
    }
}

 

原文地址http://www.flexcoders.cn/showtopic-1338.aspx

原创粉丝点击