📄 xmlworker.as
字号:
class pssclasses.xmlReaders.XmlWorker {
private static var firstChild:XMLNode;
private static var childInObject:Object;
//********************************************
private function XmlWorker() {
}
//***************return XML tags by name**********
public static function returnChildNode(inXML:XML):XMLNode {
return inXML.firstChild;
}
//********************************************
// Metod wich returned Object with node (Object Property by name Tag)
//********************************************
public static function returnObjectPropByName(nodeXML:XMLNode):Object {
var childInObject:Object = new Object();
childInObject.length = nodeXML.childNodes.length;
for (var chil = 0; chil<childInObject.length; chil++) {
childInObject[nodeXML.childNodes[chil].nodeName] = nodeXML.childNodes[chil].firstChild.nodeValue;
}
return childInObject;
}
//********************************************
// Metod wich returned Array with NodeValues by tage name
public static function arrayFromTagName(xmlNode:XMLNode, tagName:String):Array {
var tagArray:Array = new Array();
var nodesLength:Number = xmlNode.childNodes.length;
var inChilLength:Number;
var inChilTag:XMLNode;
for (var chil = 0; chil<nodesLength; chil++) {
inChilTag = xmlNode.childNodes[chil];
inChilLength = xmlNode.childNodes.length;
for (var inChil = 0; inChil<inChilLength; inChil++) {
if (inChilTag.childNodes[inChil].nodeName == tagName) {
tagArray[chil] = inChilTag.childNodes[inChil].firstChild;
}
}
}
return tagArray;
}
//****************** metod wich return attributes by attribetes name fron tag************
public static function attibutesByNameFromTag(xmlNode:XMLNode, tagAttibutes:String):String {
var tagAttributes:String;
tagAttributes = xmlNode.firstChild.attributes[tagAttibutes];
return tagAttributes;
}
//******end******** metod wich return attributes by attribetes name fron tag************
//******************metod wich returned array attributes from XML Node*****************
public static function arrayAttributesFromNode(xmlNode:XMLNode, tagAttributes:String):Array {
var nodeAttributes:Array = new Array();
var nodesLength:Number = xmlNode.childNodes.length;
var inChilLength:Number;
var inChilTag:XMLNode;
for (var chil = 0; chil<nodesLength; chil++) {
nodeAttributes[chil] = xmlNode.childNodes[chil].attributes[tagAttributes];
}
return nodeAttributes;
}
//*****end*********metod wich returned array attributes from XML Node*****************
//********************metod wich returned XML with custom servives select from attributes ID*********
public static function xmlWithCustomServices(servicesXML:XMLNode, tagAttributes:String, customServicesArr:Array) {
var customServicesXML:XML;
var suctomServicesString:String;
var globalServicesArray:Array = new Array();
// return array with object from xml
globalServicesArray = arrayObjectFromXmlNode(servicesXML, tagAttributes);
// datachment two array and take concidence object
globalServicesArray = detachmentArray(globalServicesArray, customServicesArr, "id");
// made XML from returned array with cervices
return xmlFromArrayWithObjectt(globalServicesArray);
}
//******end**********metod wich returned XML with custom servives select from attributes ID*********
//************metod return XML from array with object with property ID and TAG in tag lie XNLNode********
public static function xmlFromArrayWithObjectt(arrayWithObject:Array):XML {
var counter:Number = arrayWithObject.length;
var XMLString:String = "";
for (var ar = 0; ar<counter; ar++) {
XMLString += arrayWithObject[ar].tag;
}
var servicesNode:XML = new XML(XMLString);
return servicesNode;
}
//***end*****metod return XML from array with object with property ID and TAG in tag lie XNLNode********
//*****************************metod return array with Object with property ID and Tag from XML******************
public static function arrayObjectFromXmlNode(servicesXML:XMLNode, tagAttributes:String):Array {
var globalServices_arr:Array = new Array();
var nodesLength:Number = servicesXML.childNodes.length;
// get global services attributes and tags Object
for (var chil = 0; chil<nodesLength; chil++) {
var globalServices_obj:Object = new Object();
globalServices_obj.id = servicesXML.childNodes[chil].attributes[tagAttributes];
globalServices_obj.tag = servicesXML.childNodes[chil];
globalServices_arr[chil] = globalServices_obj;
}
return globalServices_arr;
}
//*****end********************metod return array with Object with property ID and Tag from XML******************
// *********************METOD SORT COMPARE TWO ARRAY AND GET CONCIDENCE************
//var arrayBase:Array = new Array({id:5, tag:"JJJJJ"}, {id:67, tag:"JJJJJ"}, {id:8, tag:"JJJJJ"}, {id:3, tag:"JJJJJ"}, {id:23, tag:"JJJJJ"});
//var arrayBase2:Array = new Array(67, 23, 1, 5);
public static function detachmentArray(fromArray:Array, withArray:Array, propertySort:String):Array {
fromArray.sortOn(propertySort, 16);
withArray.sort(16);
var counter:Number = withArray.length;
var counterFrom:Number = fromArray.length;
var indexInSeletc:Number = 0;
var returnArray:Array = new Array();
for (var ar = 0; ar<counter; ar++) {
if (Number(fromArray[ar].id)>Number(withArray[ar])) {
continue;
} else if (Number(fromArray[ar].id) == Number(withArray[ar])) {
returnArray.push(fromArray[ar]);
indexInSeletc++;
continue;
} else {
for (var fr = indexInSeletc; fr<counterFrom; fr++) {
if (Number(fromArray[fr].id) == Number(withArray[ar])) {
returnArray.push(fromArray[fr]);
indexInSeletc = fr;
continue;
}
}
}
}
return returnArray;
}
// **END***********METOD SORT COMPARE TWO ARRAY AND GET CONCIDENCE************
//*******end****class*****************
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -