XML TO ArrayCollection 两种实现方式

一:


代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<projects>
<node Country="暗暗啊" Gold="10" Silver="20" Bronze="30"/>
<node Country="白斑病" Gold="30" Silver="20" Bronze="10"/>
<node Country="常常厂" Gold="20" Silver="40" Bronze="60"/>
<node Country="赌东道" Gold="50" Silver="30" Bronze="10"/>
<node Country="饿饿额" Gold="15" Silver="18" Bronze="46"/>
<node Country="方法法" Gold="61" Silver="52" Bronze="38"/>
</projects>
<mx:HTTPService id="HTTPService1"
url="charts_ColumnChart.xml"
result="initFile(event)" showBusyCursor="true" method="post"
resultFormat="e4x"/>
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
private var ac:ArrayCollection = new ArrayCollection();
function initFile(event:ResultEvent):void{
for each(var p:XML in event.result..node){
var obj:Object=new Object();
obj.Country=p.@Country;
obj.Gold=p.@Gold;
obj.Silver=p.@Silver;
obj.Bronze=p.@Bronze;
ac.addItem(obj);
}
}

二:


代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<projects>
<node>
<Country>暗暗a</Country>
<Gold>10</Gold>
<Silver>20</Silver>
<Bronze>30</Bronze>
</node>
<node>
<Country>暗b啊</Country>
<Gold>10</Gold>
<Silver>20</Silver>
<Bronze>30</Bronze>
</node>
<node>
<Country>暗c啊</Country>
<Gold>10</Gold>
<Silver>20</Silver>
<Bronze>30</Bronze>
</node>
</projects>
<mx:HTTPService id="HTTPService2"
url="charts_ColumnChart1.xml"
result="initFile1(event)" showBusyCursor="true" method="post"
resultFormat="e4x"/>
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
private var ac1:ArrayCollection = new ArrayCollection();
function initFile1(event:ResultEvent):void{
for each(var p:XML in event.result..node){
var xmlobj:XMLList=new XMLList(p);
ac1.addItem(xmlobj);
}
}

XMLList在默认包中,不用import
event.result..node是resultFormat="e4x"的写法,支持event.result(结果)..节点名
例如:


代码如下:

<a>
<b><c><d><e></e></d></c></b>
<b><c><d><e></e></d></c></b>
</a>

event.result..e 直接可以找到两个E节点对象
建议使用方法二进行XML映射,这样基本是自动映射,不用手动对应属性。唯一不足XML代码量增大!
目前本人只测试过这两种xml实现方式,还是没有脱离for循环,没有找到合适FLEX支持转换类,研究ING 有结果与大家分享。

(0)

相关推荐

  • XML TO ArrayCollection 两种实现方式

    一: 复制代码 代码如下: <?xml version="1.0" encoding="UTF-8"?> <projects> <node Country="暗暗啊" Gold="10" Silver="20" Bronze="30"/> <node Country="白斑病" Gold="30" Silv

  • 深入Android中BroadcastReceiver的两种注册方式(静态和动态)详解

    今天我们一起来探讨下安卓中BroadcastReceiver组件以及详细分析下它的两种注册方式. BroadcastReceiver也就是"广播接收者"的意思,顾名思义,它就是用来接收来自系统和应用中的广播.在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能:当网络状态改变时系统会产生一条广播,接收到这条广播就能及时地做出提示和保存数据等操作:当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户

  • spring aop两种配置方式

    第一种:注解配置AOP 注解配置AOP(使用 AspectJ 类库实现的),大致分为三步: 1. 使用注解@Aspect来定义一个切面,在切面中定义切入点(@Pointcut),通知类型(@Before, @AfterReturning,@After,@AfterThrowing,@Around). 2. 开发需要被拦截的类. 3. 将切面配置到xml中,当然,我们也可以使用自动扫描Bean的方式.这样的话,那就交由Spring AoP容器管理. 另外需要引用 aspectJ 的 jar 包:

  • android实现图片闪烁动画效果的两种实现方式(实用性高)

    大家在使用APP的时候,有的APP在点击语音搜索界面后,会出现一个小话筒,小话筒会类似雷达似得在闪烁,表示正在倾听你说话的内容(这个大家可以参照微软的必应APP),那么问题来了,这种动画效果是如何实现的呢?其实实现这种动画效果有很多种方法,最常见的是两种:第一种就是插入n张图片进行切换已达到如此目的,第二种就是通过改变一张图片的透明度来达到闪烁的效果.下面就分别讲一下通过这两种方法如何实现. 第一种:通过n张图片之间切换实现动画效果 这种方法的原理很简单,利用handler的延时机制在子线程中完

  • Android BottomSheet效果的两种实现方式

    本文介绍了Android BottomSheet效果的两种实现方式,分享给大家,具体如下: BottomSheet效果 BottomSheet的效果是指从屏幕底部向上滑的效果,是MaterialDesign风格的一种,视觉效果如下: BottomSheet效果 实现这种效果有几种不同的方式,如果是在一个固定的页面上添加这种效果,可以在该页面布局中添加BoottomSheet相关的控件.如果是作为通用控件来提供给不同页面使用,则可以使用BottomSheetDialog实现,本文将对两种方法进行讲

  • Android Studio自动排版的两种实现方式

    Android Studio这样的集成开发环境虽然代码自动化程度很高,但是自动化程度高导致人的自主性就下降了,而且总是依赖编辑器的功能也会搞得代码排版很别扭. 最难受的是你在Android Studio中编写界面.xml文件的时候,代码自动化程度不高,缩进什么的都不自动,改个代码都能搞得排版一塌糊涂. 所以我就去网上找了两个自动排版的方法: (1)Ctrl + Alt + L: 但是可能会与QQ的快捷键有冲突, 去在QQ设置里面的热键对应的改掉就没冲突了. (2)还有一个不用记快捷键的好办法:就

  • 详解springboot项目带Tomcat和不带Tomcat的两种打包方式

    1,带Tomcat的打包方式 1.1, 在pom.xml文件添加以下配置(目的:自定main入口和跳过Junit代码) <build> <plugins> <!--打包为jar时指定main入口--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <

  • AOP之事务管理<aop:advisor>的两种配置方式

    目录 AOP事务管理<aop:advisor>两种配置方式 方式一 方式二 hibernate事务配置Aop aop:advisor模式 AOP事务管理<aop:advisor>两种配置方式 方式一 @transactionManagerbean.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.o

  • SpringBoot多数据源的两种实现方式实例

    目录 前言 基于dynamic-datasource实现多数据源 dynamic-datasource介绍 dynamic-datasource特性 使用 @DS 切换数据源 @DS使用实例 基于AOP手动实现多数据源 总结 前言 公司项目有连接多个不同数据库的需求,特研究了一下,根据网上的资料,造了一个基于AOP方式的数据源切换轮子,但继续探索,突然发现有开源的多数据源管理启动器.不过,本篇两种方式都会介绍. 基于dynamic-datasource实现多数据源 dynamic-datasou

  • 详解SpringMVC的两种实现方式

    目录 一.方法一:实现Controller接口 二.方法二:使用注解开发 一.方法一:实现Controller接口 这个在我的第一个SpringMVC程序中已经学习过了,在此不作赘述,现在主要来学习第二种方法,使用注解开发: 二.方法二:使用注解开发 1.导包 2.在web.xml中配置DispatcherServlet 3.建立一个Spring配置文件springmvc-servlet.xml <?xml version="1.0" encoding="UTF-8&q

随机推荐