`
yexin218
  • 浏览: 973004 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

Flex--XML转换成ArrayCollection

    博客分类:
  • Flex
阅读更多

xml数据:

<?xml version="1.0" encoding="UTF-8"?>
<shuju>
    <shuiguo month="Jan-04">
        <apple>81768</apple>
        <orange>60310</orange>
        <banana>43357</banana>
    </shuiguo>
    <shuiguo month="Feb-04">
        <apple>81156</apple>
        <orange>58883</orange>
        <banana>49280</banana>
    </shuiguo>
</shuju>

 程序代码:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="http.send()">
	<mx:Script>
		<![CDATA[
			import mx.rpc.events.ResultEvent;
			import mx.collections.ArrayCollection;
			[Bindable]
			public var myData:ArrayCollection;
			
			public function resultHandler(event:ResultEvent):void{
				        error.text = event.result as String;
	            		myData = new ArrayCollection(event.result.shuju.shuiguo);			
				}
		]]>
	</mx:Script>
	<!--<mx:HTTPService id="http" url="http://localhost:8080/XML2ArrayCollection/data/data.xml" useProxy="false" result="resultHandler(event)"/>-->
	<mx:HTTPService id="http" url="http://localhost:8080/XML2ArrayCollection/data/data.xml" useProxy="false" result="myData=ArrayCollection(http.lastResult.shuju.shuiguo)"/>
	  <mx:Panel title="Line Chart" width="465" height="496">
     <mx:LineChart id="chart" dataProvider="{myData}">
        <mx:horizontalAxis>
           <mx:CategoryAxis categoryField="month"/>
        </mx:horizontalAxis>
        <mx:series>
           <mx:LineSeries yField="apple" name="Apple"/>
           <mx:LineSeries yField="orange" name="Orange"/>
           <mx:LineSeries yField="banana" name="Banana"/>
        </mx:series>
     </mx:LineChart>
     <mx:TextArea width="393" id="error"/>
  </mx:Panel>
</mx:Application>

 现在有一个问题我不明白:

我把那个httpservice改写成:

<mx:HTTPService id="http" url="http://localhost:8080/XML2ArrayCollection/data/data.xml" useProxy="false" result="resultHandler(event)"/>

 然后添加了脚本:

			public function resultHandler(event:ResultEvent):void{
				        error.text = event.result as String;
	            		myData = new ArrayCollection(event.result.shuju.shuiguo);			
				}

 这样就不行了,我测试了下,好像event.result里面没有内容,没有返回xml内容吗?谁大牛帮忙解释下。

 

Reference:

1. http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&file=charts_intro_108_12.html

 

2. http://hillelcoren.com/2008/09/21/flex-tip-convert-xml-to-arraycollection/

3. http://dreamweaverforum.info/flex/20292-converting-xml-file-array-collection.html

 

分享到:
评论
1 楼 zhong_pro 2011-11-18  
因为要先把event.result转成xml,因为有<?xml version="1.0" encoding="utf-8"?>  转不了,而直接文件则是从略过第一行的
例子如下:
public var myData:XML=  
                <tables>  
                    <table>  
                        <name>TRP_USERS</name>  
                        <statement>CREATE TABLE IF NOT EXISTS TRP_USERS (USER_ID INTEGER PRIMARY KEY AUTOINCREMENT,USER_NAME TEXT,PASSWORD TEXT,CREATION_DATE DATE)</statement>  
                    </table>  
                    <table>  
                        <name>TRP_PROJECTS</name>  
                        <statement>CREATE TABLE IF NOT EXISTS TRP_EMPLOYEE_PROJECTS (EMPLOYEE_PROJECT_ID INTEGER PRIMARY KEY AUTOINCREMENT,USER_ID INTEGER,EMPLOYEE_NUMBER TEXT,LEVEL_CODE TEXT,PROJECT_NAME TEXT,PROJECT_MANAGER TEXT,START_DATE DATE,SCHEDULE_END_DATE DATE,TECH_DIRECTOR_NAME TEXT,TECH_LEADER_NAME TEXT,TWO_WEEK_OUT TEXT,MEMO TEXT,UPLOAD_FLAG TEXT,CREATION_DATE DATE)</statement>  
                    </table>  
                </tables>;  
            private var xmlList:XMLList=new XMLList();  
            private var xmlListCollection:XMLListCollection=new XMLListCollection();  
            private var provider:ArrayCollection;  
            private function init():void  
            {  
                xmlList=myData.elements("table");  
                xmlListxmlListCollection.source=xmlList;  
                provider=new ArrayCollection(xmlListCollection.toArray());  
                grid.dataProvider=provider;  
            }  

相关推荐

    Flex:ArrayCollection转xml形式的实例

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

    flex-web工程载入tomcat下xml文件(含源码)

    `XMLListCollection`是从XML列表转换而来的集合,可以方便地与Flex组件如DataGrid绑定。`ArrayCollection`是ActionScript中的一个类,它是Array的子类,支持数据绑定和事件。 综上所述,这个Flex-web应用程序通过...

    flex------组件-----数据可视化

    可以使用Array、XML、ArrayCollection或任何实现了IList接口的对象作为数据源。通过设置数据提供者,图表会自动更新以反映数据的变化。 3. **States和Effects**:Flex支持状态管理,允许你在不同场景下改变图表的...

    Flex Tree 通过Arraycollection转化为XML数据源,新增、删除、修改功能的整合

    本篇文章将聚焦于如何将ArrayCollection转换为XML数据源,并实现Flex Tree组件的新增、删除和修改功能。以下是详细的解释和步骤。 首先,ArrayCollection是Flex中常用的数据结构,它是一个动态数组,支持数据绑定和...

    Flex之URLLoader加载XML

    - `menus = XML(loader.data)` 将加载的数据转换为XML对象。 - `var results:XMLList = menus.node` 获取XML文件中所有 `&lt;node&gt;` 元素。 - `tree.dataProvider = results` 将XML数据绑定到Tree组件,使其显示在...

    Flex_JSON_XML.zip_flex

    - **Flex解析JSON**:Flex提供了`ObjectProxy`和`ArrayCollection`来处理JSON数据,可以方便地将JSON对象转换为Flex中的数据结构。 - **Java生成JSON**:Java有许多库支持JSON,如Jackson、Gson、org.json等。这些...

    Flex使用json和xml数据交互

    ### Flex使用json和xml数据交互:深度解析与实践 #### 引言 在现代Web开发领域,数据交换格式的选择对于实现高效、灵活的前后端通信至关重要。JSON(JavaScript Object Notation)与XML(Extensible Markup ...

    FLEX操作XML&JSON

    3. **显示XML数据**:Flex的`&lt;mx:DataGrid&gt;`组件能方便地将XML数据展示成表格形式。通过设置`dataProvider`属性为XML数据,可以将XML节点映射到表格列。如`&lt;mx:DataGrid dataProvider="{xmlData..childNodeName}" /&gt;...

    Flex tree的用法

    - **XMLList和XMLListCollection**: 将XML转换为XMLList或XMLListCollection,然后设置给Tree的`dataProvider`属性,这样就可以显示XML数据。 - **节点标签和子节点**: XML元素的文本可以作为节点的标签,而子元素...

    Flex中Tree组件的数据源举例(xml,array,object)

    在Flex中,我们可以使用mx.collections.XMLListCollection将XML转换为可绑定的数据集合。例如: ```xml &lt;xml&gt; &lt;item&gt;Item 1.1 &lt;item&gt;Item 1.2 &lt;item&gt;Item 2.1 &lt;/xml&gt; ``` 然后在Flex代码中,你可以...

    flex4 dataGrid 日期格式转换

    本篇文章将深入讲解如何在Flex 4的`DataGrid`中进行日期格式转换。 首先,我们需要引入`DateFormatter`组件。`DateFormatter`是Flex提供的一个类,用于将日期对象格式化为字符串。在MXML代码中,你可以通过以下方式...

    Flex DataGrid从XML文件中加载数据

    4. **XMLListCollection与ArrayCollection**:在AS3中,`XMLList` 类似于数组,可以用来存储XML节点的集合。`XMLListCollection` 是一个可绑定的数据集,可以作为 Flex UI 组件的数据提供者。`users.children()` ...

    flex charts 图形集合实例(读取XML)

    在这个例子中,数据源可能是XML文件中的节点或元素,通过解析XML,这些数据被转换成ArrayCollection,然后绑定到图表上。 4. **Object与XML/ArrayCollection转换**:为了将XML数据传递给图表,需要将其转换为...

    flex remote

    - Flex框架会自动将Java中的List转换成Flex中的ArrayCollection。 - 这种自动转换虽然方便,但也需要注意数据类型的一致性和兼容性问题。 **3. 性能优化** - 对于大数据量的传输,可以考虑使用压缩机制来提高...

    Flex Tree XML

    在Flex中,Tree组件可以绑定到各种数据源,包括Array,ArrayCollection,以及XML或XMLList。XML因其结构化和易于解析的特性,常被用来存储和传递层次结构的数据,这与Tree组件的展示需求非常匹配。在"TreeExample"中...

    Flex如何让前台链接后并访问数据库

    这些结果可以转换为JSON或XML格式,以便于Flex解析。 5. **数据模型**:在Flex客户端,定义数据模型类,它们通常与数据库表结构相对应。数据模型类可以通过数据绑定直接与UI组件关联。 6. **调用服务并处理响应**...

    Flex读取xml文件几种方法

    在这个例子中,我们将XML文件中的`color`元素转换为了`ArrayCollection`类型,以便在Flex应用中使用。 #### 方法二:使用URLLoader读取XML文件 除了`HTTPService`外,`URLLoader`也是Flex中另一个常用的方法来读取...

    Flex中组件datagrid导出Excel

    3. **XML序列化**:在Flex中,我们可以利用XML或XMLList来表示数据,因为它们可以轻松地转换成字符串,方便写入文件。将DataGrid的数据转换成XML,可以采用循环遍历的方式,将每行数据转换成一个XML节点,然后将所有...

    Flex连接数据库三种方法

    - 调用RemoteObject的方法,当服务端返回数据后,可以通过事件监听器处理数据,将ArrayList转换为Flex能识别的数据结构,如ArrayCollection。 4. **展示数据**: - 将从服务端获取的公告数据绑定到Flex界面组件,...

    XML TO ArrayCollection 两种实现方式

    本篇文章将详细介绍两种将XML转换为ArrayCollection的方法。 ### 方法一:手动映射XML属性到Object 第一种方法是通过遍历XML节点,创建新的Object对象,然后将XML的属性赋值给Object的属性,最后将这个Object添加...

Global site tag (gtag.js) - Google Analytics