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());
}
}
}
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());
}
}
}