HTTPService e4x object

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

 


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值