HTTPService e4x object

来源:互联网 发布:什么是数据帧 编辑:程序博客网 时间:2024/06/02 05:57

对于<mx:HTTPService resultFormat="object"/>,<UnderlyingRIC>123E45678</UnderlyingRIC>会解析为Number,导致界面上出现“Infinite”

使用resultFormat="e4x"来解决上述问题

          <mx:HTTPService id="KDBUnderlyingRICList" url="{myStrings.URLAddress + '.xml?UnderlyingRICList'}"           result="myFunctions.dataHandleUnderlyingRICList(event)" resultFormat="e4x"/>          static public function dataHandleUnderlyingRICList(event:ResultEvent):void{             myStrings.UnderlyingRICList = handleUnderlyingRIC(event.result);          }           //利用正则查找<UnderlyingRIC>123E45678</UnderlyingRIC>,转为<UnderlyingRIC>'123E45678</UnderlyingRIC>用SimpleXMLDecoder转成对象,在对象中再去掉'                      static public function handleUnderlyingRIC(obj:Object):ArrayCollection{            var xml:String=XML(obj).toString();            var x:String=xml.replace(/(<UnderlyingRIC>)([^<>].*)(<\/UnderlyingRIC>)/g,"$1'$2$3");            var decoder:SimpleXMLDecoder=new SimpleXMLDecoder(true);            var obj1:Object=decoder.decodeXML(new XMLDocument(x));            var ac:ArrayCollection=obj1.R.r as ArrayCollection;            for each(var obj:Object in ac){                obj.UnderlyingRIC=obj.UnderlyingRIC.toString().replace("'","");            }            return ac;           }


下面的方法转为xml Object,不过要注意科学记数法E

      public function covertXmlToArray(xml:XML):ArrayCollection{         return  new ArrayCollection(new XMLListCollection(xml.elements()).toArray());      }

	
				
		
原创粉丝点击