注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

isblog主页

或许不一定要做得最多,但一定要做得最好! 能力就是一种财富,积累越多,就越体现你

 
 
 

日志

 
 

flex 读取xml配置文件并保存到ArrayConection中  

2011-08-16 10:28:27|  分类: Flex学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
本文主要是介绍两种方式读取xml配置文件,并保存到ArrayConection中

1、conf.xml文件的内容如下

<?xml version="1.0" encoding="utf-8"?>
<services>
  <service>
    <url>http://localhost/testWeb.php</url>
    <method>test1</method>
  </service>
  <service>
    <url>http://localhost/testWeb.php</url>
    <method>test2</method>
  </service>
</services>

2、webService.mxml文件的代码如下

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="init()" fontSize="14" width="461">
<mx:HTTPService id="parseXml"  showBusyCursor= "true"  url= "configs/conf.xml" resultFormat="xml">  
          
    </mx:HTTPService>  
    <mx:Script>
        <![CDATA[
         import mx.collections.ArrayCollection;
            import mx.controls.Alert;  
            import mx.rpc.events.FaultEvent;  
            import mx.rpc.events.ResultEvent;  
            private function init():void  
            {  
                //使用URLRequest来读取xml配置文件
                var urlrequest:URLRequest=new URLRequest("configs/conf.xml");  
                var loader:URLLoader=new URLLoader();  
                loader.load(urlrequest);  
                loader.addEventListener(Event.COMPLETE, completehandler);  
                //使用httpservice来读取xml配置文件
                parseXml.send();  
                parseXml.addEventListener(ResultEvent.RESULT,result);  
                parseXml.addEventListener(FaultEvent.FAULT,fault);  
            }  
  
            //URLRequest返回结果处理
            private function completehandler(event:Event):void
            {
                var xml:XML=new XML(event.target.data);
                //把xml信息保存到数组中
                var resultArr:ArrayCollection = elementToArray(xml);

                //循环数组输出信息
                for(var i:int = 0; i<resultArr.length; i++) {   
              var ee:Object = resultArr.getItemAt(i);
                   res.text += "\n---------------\n"; 
                   res.text += "url:"+ee['url']+"\n";     
                   res.text += "method:"+ee['method']+"\n";  
                } 

            }
            
            //httpservice异常处理
            private function fault(event:FaultEvent):void{  
                res.text += event.message;
            }

            //httpservice返回结果处理
            private function result(event:ResultEvent):void{
/*
                arr=event.result.services.service;//这可以转成ArrayCollecation
                for each(var mstr:Object in arr)
                {
          res.text += mstr.url+"\n";
                }
*/
                var tmpXml:XML = XML(event.result);

                //res.text += tmpXml.toXMLString(); 
                //res.text += tmpXml.children(); 
                var resultArr:ArrayCollection = elementToArray(tmpXml);
                for(var i:int = 0; i<resultArr.length; i++) {   
              var ee:Object = resultArr.getItemAt(i);
                   res.text += "\n==================\n";
                   res.text += "url:"+ee['url']+"\n";       
                   res.text += "method:"+ee['method']+"\n";  
                }  
                
            }

            /**
            * xml to ArrayConection
            * @return ArrayConection
            */
            public function elementToArray(results:XML):ArrayCollection
            {
                var resultArr:ArrayCollection = new ArrayCollection();
                for each(var str:XML in results.children())
                {
                    var arr:Array = new Array();
               for each(var str1:XML in str.children())
               {
                   arr[str1.name().toString()]=str1;
               }
               resultArr.addItem(arr);
           }
           return resultArr;
            }
      ]]>
    </mx:Script>
    <mx:TextArea id="res" x="10" y="10" height="311" width="439"/>
</mx:Application>

3、TextAre输出的结果如下


---------------
url:http://localhost/testWeb.php
method:test1

---------------
url:http://localhost/testWeb.php
method:test2

==================
url:http://localhost/testWeb.php
method:test1

==================
url:http://localhost/testWeb.php
method:test2

  评论这张
 
阅读(963)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018