`
nianshi
  • 浏览: 419029 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Flex中操作XML(下)

    博客分类:
  • Flex
阅读更多

 

四 在Flex中使用XML的例子

大的XML文档用来显示数据或者显示列表的情况比较多,比如显示数据时作为Datagrid的数据源,或者为List,Combobox,Tree等的显示列表。

 

当我们使用List或者Combobox的时候,往往会把XML对象转换为ArrayCollection对象,看下面的例子

外部Xml文件

view plaincopy to clipboardprint?
<books>                     
    <book name="flex tutorial">                 
        <price>30</price>             
        <author>adobe</author>            
    </book>                 
    <book name="air tutorial">                  
        <price>40</price>             
        <author>adobe</author>            
    </book>                 
    <book name="java tutorial">                 
        <price>50</price>             
        <author>sun</author>              
    </book>                 
</books>                   
<books>     
<book name="flex tutorial">    
   <price>30</price>   
   <author>adobe</author>   
</book>    
<book name="air tutorial">    
   <price>40</price>   
   <author>adobe</author>   
</book>    
<book name="java tutorial">    
   <price>50</price>   
   <author>sun</author>   
</book>    
</books>

Flex文件

view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?>                  
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"                  
layout="absolute"                
creationComplete="init()">                
<mx:Script>               
<!--[CDATA[                  
      import mx.collections.ArrayCollection;                  
      import mx.rpc.events.ResultEvent;               
      //用于数据绑定的ArrayCollection                
      [Bindable]private var externalData:ArrayCollection = new ArrayCollection();                 
                      
      private function init():void {                  
          //发送请求                  
          myService.send();               
      }               
                          
      private function resultHandler(event:ResultEvent):void {                
          //取得Xml对象中book节点的集合                 
          externalData = event.result.books.book;                 
      }//断点处                  
]]-->                
</mx:Script>                  
<!--创建Httpservice对象加载外部Xml-->                 
<mx:HTTPService id="myService"               
      url="xmlFile.xml"               
      result="resultHandler(event)"/>                  
<!--用于显示的list-->                  
<mx:List id="datalist" dataProvider="{externalData}" labelField="name"/>                          
</mx:Application>              
<?xml version="1.0" encoding="utf-8"?>    
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"    
layout="absolute"    
creationComplete="init()">    
<mx:Script>    
<!--[CDATA[    
      import mx.collections.ArrayCollection;    
      import mx.rpc.events.ResultEvent;    
      //用于数据绑定的ArrayCollection    
      [Bindable]private var externalData:ArrayCollection = new ArrayCollection();     
         
      private function init():void {    
          //发送请求    
          myService.send();    
      }    
             
      private function resultHandler(event:ResultEvent):void {    
          //取得Xml对象中book节点的集合    
          externalData = event.result.books.book;    
      }//断点处    
]]-->    
</mx:Script>    
<!--创建Httpservice对象加载外部Xml-->    
<mx:HTTPService id="myService"    
      url="xmlFile.xml"    
      result="resultHandler(event)"/>    
<!--用于显示的list-->    
<mx:List id="datalist" dataProvider="{externalData}" labelField="name"/>             
</mx:Application>

将上面的代码以debug模式执行,程序停在断点处,在variables视图中我们可以很清晰的看到程序HttpService对象在加载外部 XML后已经把它转换成了ArrayCollection对象,如下图。这样就可以很轻松的将数据源绑定到显示列表对象List中。


 

 

另外一种情况,当我们使用Tree组件的时候,需要在HTTPService对象中加上resultFormat="e4x"以XML的格式读取进来而不要转换为ArrayCollection。

外部XML文件

view plaincopy to clipboardprint?
<books>     
<category name="RIA">   
    <book name="flex tutorial" price="30" author="adobe">  
    </book>     
    <book name="air tutorial" price="40" author="adobe">    
    </book>     
</category>         
<category name="Java">          
    <book name="java tutorial" price="50" author="sun">     
    </book>     
</category>         
</books>       
<books>
<category name="RIA">
<book name="flex tutorial" price="30" author="adobe">
</book>
<book name="air tutorial" price="40" author="adobe">
</book>
</category>  
<category name="Java">  
<book name="java tutorial" price="50" author="sun">
</book>
</category>  
</books>

Flex文件

view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?>              
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"              
layout="absolute"            
creationComplete="myService.send()">              
<mx:HTTPService id="myService"           
    url="xmlFile.xml"         
    resultFormat="e4x"/>       
              
<mx:XMLListCollection id="booktreesrc"             
    source="{myService.lastResult.category}"/>         
              
<mx:Tree id="bookTree"             
    height="100%"         
    dataProvider="{booktreesrc}"          
    labelField="@name"/>       
                      
</mx:Application>          
<?xml version="1.0" encoding="utf-8"?>   
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"   
layout="absolute"   
creationComplete="myService.send()">   
<mx:HTTPService id="myService"   
url="xmlFile.xml"  
resultFormat="e4x"/>  
   
<mx:XMLListCollection id="booktreesrc"   
source="{myService.lastResult.category}"/>  
   
<mx:Tree id="bookTree"   
height="100%"  
dataProvider="{booktreesrc}"  
labelField="@name"/>  
           
</mx:Application>

画面显示

分享到:
评论

相关推荐

    Flex里解析XML数据

    Flex中的XML支持E4X,这是一种集成在AS3中的XML处理语法,使XML操作更加直观。E4X允许我们像处理JavaScript对象一样处理XML,例如: ```actionscript var items:Array = xml.root.item.*; for each (var item:XML ...

    Flex与JSON及XML的互操作

    - **Flex与XML的互操作**:Flex通过内置的XML解析功能,可以直接读取和解析XML数据,这使得从服务器获取XML格式的数据并将其展示在Flex应用中变得非常简便。例如,文章中提到的JSP文件生成的XML数据,可以直接被Flex...

    flex 操作XML

    本篇将重点讲解如何在Flex中操作XML,包括从本地读取XML文件以及通过HttpServer获取远程XML数据。 1. **XML基础**: - XML是一种标记语言,它定义了一组规则来创建自己的标签,这些标签用于描述数据。 - XML文档...

    flex解析xml框架实例

    然后,我们可以使用XML对象的各种方法和属性来解析和操作XML文档。 XML解析的方法有很多,如访问节点、查询节点、遍历XML树等。例如,如果XML数据结构如下: ```xml &lt;item id="1"&gt;Item 1 &lt;item id="2"&gt;Item 2 ...

    flex解析xml

    总结,Flex解析XML文件主要通过XML和XMLList类,它们提供了丰富的API来操作XML数据。理解这些概念和方法,将有助于你在Flex应用中有效地处理和展示XML数据。无论是简单的数据展示还是复杂的交互逻辑,Flex都能通过...

    readxml flex加载xml文件

    XMLDocument类提供了另一种方式来加载和操作XML。与XMLLoader不同,XMLDocument可以直接加载XML字符串,或者从已存在的XMLNode实例中创建。以下是如何使用XMLDocument加载XML文件: ```actionscript var xmlRequest...

    FLEX操作XML&JSON

    【标题】: 使用FLEX操作XML和JSON 【概述】 在本文中,我们将探讨如何在Adobe Flex(现称为OpenFL)环境中处理XML和JSON数据。Flex是一种开源框架,允许开发人员使用ActionScript 3.0(AS3)和MXML来构建富互联网...

    Flex中采用Flex-config.xml进行命令行的编译

    这个文件通常位于项目的根目录下,或者在全局的Flex SDK安装路径中,对于命令行编译尤其重要。通过修改`flex-config.xml`,我们可以优化编译过程,控制输出的SWF或SWC文件的特性,以及调整各种编译选项。 `flex-...

    flex 解析xml实例

    在Flex中,我们通常使用XML类来解析和操作XML文档。以下是一些关键步骤和知识点: 1. **创建XML对象**:在Flex中,你可以通过XML()构造函数创建一个XML对象,然后加载XML字符串或文件。例如: ```actionscript ...

    flex - xml操作

    ### Flex与XML操作详解 #### 一、E4X与ActionScript 3.0的集成 E4X(ECMAScript for XML)是ECMAScript标准的一个扩展,它被引入到ActionScript 3.0中,极大地简化了XML数据处理的过程。在Flash 5时,ActionScript...

    flex 操作xml 实现增删改查

    ### Flex操作XML实现增删改查 在Flex中操作XML数据是进行动态内容处理的关键技能之一。本篇文章将深入探讨如何使用Flex中的XML类来实现对XML数据的增、删、改、查功能。 #### 一、理解XML结构 XML(可扩展标记...

    flex 解析xml文件 httpservice

    XML类是ActionScript 3.0中用于处理XML文档的主要工具,它提供了丰富的API来创建、解析和操作XML。例如,可以使用`XML.parse()`方法将XML字符串转换为XML对象,或者直接通过XML构造函数创建XML对象。 在Flex中,XML...

    flex 读XML 写XML 并保存为文件

    通过E4X,你可以像操作普通JavaScript对象一样操作XML。例如,获取XML中的某个节点值: ```actionscript var nodeValue:String = xml.root.node; ``` 二、XML写入 1. 创建XML对象:在创建XML对象时,可以直接通过...

    动态绑定XML,实现flex树控件的绑定

    1. 创建XML数据:在.NET后端,你可以使用XMLDocument或者XDocument类来创建和操作XML。例如,生成一个表示树结构的XML文件,其中包含节点(节点可以有子节点)。 ```csharp var doc = new XDocument( new XElement...

    Flex操作XML

    以下将详细介绍Flex操作XML的几个关键步骤: 1. **加载XML**:Flex提供了`XML`类,用于解析和操作XML文档。你可以使用`URLLoader`加载XML文件,然后将加载的数据转换为`XML`对象。例如: ```actionscript var ...

    ArcGIS Flex API 中的 Flex 技-xml解析

    在Flex中,通常使用AS3(ActionScript 3)提供的XML类来进行遍历操作。 #### 四、ArcGIS Flex API中的XML解析示例 接下来,我们将基于示例代码详细分析如何使用ArcGIS Flex API进行XML解析。 ##### 4.1 示例代码...

    flex读取xml乱码的解决方法

    默认情况下,Flex使用Unicode编码(通常是UTF-8或UTF-16)来处理字符串,但如果XML文件使用的是其他编码,如GBK、BIG5等,那么在没有正确指定编码的情况下,Flex将无法正确解析XML中的字符,导致乱码出现。...

    Flex:ArrayCollection转xml形式的实例

    另一方面,如果从服务器接收XML数据,也可以通过反向操作将XML转换为ArrayCollection,以便在Flex或Flash应用中使用。 在实际项目中,你可能还需要考虑更多细节,如XML的命名空间管理、属性的添加以及错误处理等。...

    flex上:简单的将xml内容生成文件存到本地的一个小例子

    XML对象提供了丰富的API,如addChild、toString等,使得在程序中操作XML变得简单。 2. **XML内容生成**: 在描述中提到的示例中,首先可能创建了一个XML对象,然后用字符串或其它数据结构填充XML内容。例如,可以...

    Flex DataGrid从XML文件中加载数据

    在Flex编程中,`Flex DataGrid` 是一个用于展示数据集的组件,它允许用户以表格形式查看和操作数据。本示例展示了如何从XML文件加载数据并将其显示在Flex DataGrid中。以下是对该话题的详细解释: 1. **XML数据源**...

Global site tag (gtag.js) - Google Analytics