⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parser.as

📁 java开源的企业总线.xmlBlaster
💻 AS
字号:
/*//////////////////////////////////////////////////////////////////////////////////////////////    XMLRPC.Parser Version 0.1 (for ActionScript 2.0)   Last Modified: 12-02-2004   First Modified: 01-30-2004      :::::::::      Contact Information:   Matt Shaw <matt@dopelogik.com>//////////////////////////////////////////////////////////////////////////////////////////////*/import XMLRPC.common;class XMLRPC.Parser {        private var _VERSION:String = "0.1.0";	private var _PRODUCT:String = "XMLRPC.Parser";    private var _TRACE_LEVEL:Number = 3;    	/*//////////////////////////////////////////////////////////////////////	Parse()	?:		Parses XML node, based on RPC spec	IN:		XML Node from RPC Response	OUT:	Returns UnMarshalled Object;		 	//////////////////////////////////////////////////////////////////////*/	public function Parse(node:XMLNode):Object {		var Data:Object;		if (node.nodeType == 3) {			return node.nodeValue;		}		if (node.nodeType == 1) {			if ((node.nodeName == "methodResponse") || (node.nodeName == "value") || (node.nodeName == "param") || (node.nodeName == "fault") || (node.nodeName == "params") || (node.nodeName == "array")) {				DTrace("Parse(): >> " + node.nodeName,3);				return this.Parse(node.firstChild);			}						if (node.nodeName == "data") {				DTrace("Parse(): >> Begin Array",3);				Data = [];				for (var i=0; i<node.childNodes.length;i++) {					Data.push(this.Parse(node.childNodes[i]));					DTrace("Parse(): adding data to array: "+Data[Data.length-1],3);				}				DTrace("Parse(): << End Array",3);				return Data;			}						if (node.nodeName == "struct") {				DTrace("Parse(): >> Begin Struct",3);				Data = {};				for (var i=0; i<node.childNodes.length;i++) {					var Temp = this.Parse(node.childNodes[i]);					Data[Temp.name]=Temp.value;					DTrace("Parse(): Struct  item "+Temp.name + ":" + Temp.value,3);				}				DTrace("Parse(): << End Stuct",3);				return Data;			}						// The member tag is *special*. The returned			// value is *always* a hash (or in Flash-speak,			// it is always an Object).			if (node.nodeName == "member") {				var Temp1;				var Temp2;				var Data = {};				Temp1 = this.Parse(node.firstChild);				Temp2 = this.Parse(node.lastChild);				Data.name = Temp1;				Data.value = Temp2;				return Data;			}			if (node.nodeName == "name") {				return this.Parse(node.firstChild);			}						// These are the simple object data types.			// we just want the values returned.			if ( common.isSimpleType(node.nodeName) ) {				return  node.firstChild.nodeValue;			}		}		this.DTrace("Received an invalid Response.",1)		return false;	}			public function set Quiet(a:Boolean){
		if (a)
			this._TRACE_LEVEL=0
		else
			this._TRACE_LEVEL=3		
	}				/*///////////////////////////////////////////////////////////////////////	DTrace()	?: 	 traces to Output	IN:  A message, level of verboseness (higher=more)	OUT: Void	///////////////////////////////////////////////////////////////////////*/	private function DTrace(a,trace_level:Number):Void {		if ( this._TRACE_LEVEL >= trace_level){			trace(this._PRODUCT + " -> " + a);		}	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -