薛公子写的转换数组

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值