flashAS实现远程服务器xml数据读取解析

周日CG接到一位网路上的朋友的问题,要求用flash ActionScript实现从服务端读取动态生成的数据并且进行解析,输入到用户界面的小程序今天代码放上来与大家分享,实现过程很简单,供初学者学习,也希望老鸟指正。



要求:BS结构下,客户端使用flash从服务端读取动态生成的XML格式数据,并将获取的数据进行解析和发送到界面显示。





XML格式:

<root>

? <username uid="ceshi001">

??? <title>sdfsdf</title>

??? <beginTime>2009-10-10</beginTime>

??? <endTime>2009-10-01</endTime>

??? <currentMoney>56456</currentMoney>

??? <state>良好</state>

??? <isMember>否</isMember>

? </username>

? <username uid="ceshi002">

??? <title>dfgdfgdfg</title>

??? <beginTime>2009-10-10</beginTime>

??? <endTime>2009-10-01</endTime>

??? <currentMoney>23</currentMoney>

??? <state>良好</state>

??? <isMember>否</isMember>

? </username>

</root>


要求解析成单个user对象并使用Array保存,其中user对象包含XML中的数据

的属性



主要代码:



package {

import flash.display.Sprite;

import flash.events.*;

import flash.net.URLLoader;

import flash.net.URLRequest;

import flash.xml.*;



public class FlashXml extends Sprite

{

//UserInfo业务对象实例

private var bui:BUserInfo = new BUserInfo() ;

//XML缓存

private var XmlData:XML;

//用户列表

private var userList:Array;



//constructor

public function FlashXml() {

//加载XML

loadXml();

}

/**

*方法名:loadXml

*功能:加载外部XML数据

*/

private function loadXml():void{

var loader:URLLoader = new URLLoader();

//设置Loader的事件监听

configureListeners(loader);

//URL请求对象,从配置类中获取URL

var request:URLRequest = new URLRequest(ApplicationConfig.RequestURL);

try {

loader.load(request);

} catch (error:Error) {

trace("加载XML错误.");

}

}



/**

*方法名:configureListeners

*功能:设置对象的事件监听

*/

private function configureListeners(dispatcher:IEventDispatcher):void {

//加载完成

dispatcher.addEventListener(Event.COMPLETE, completeHandler);

//设置读取完成事件绑定

dispatcher.addEventListener(Event.COMPLETE, completeHandler);

//捕获安全错误和IO错误

dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);

}



/**

*方法名:completeHandler

*功能:XML数据加载完毕之后操作

*/

private function completeHandler(event:Event):void {

var loader:URLLoader = URLLoader(event.target);

this.XmlData = new XML(loader.data);

userList = bui.GetUserInfoList(XmlData);

this.XmlParse()

}



/**

*方法名:securityErrorHandler

*功能:Flash安全配置限制

*/

private function securityErrorHandler(event:SecurityErrorEvent):void {

trace("SecurityError: " + event);

}



/**

*方法名:ioErrorHandler

*功能:IO错误

*/

private function ioErrorHandler(event:IOErrorEvent):void {

trace("IOError: " + event);

}



/**

*方法名:XmlParse

*功能:解析XML的简单测试

*/

private function XmlParse():void {

//用户Array的遍历

for each(var user:UserInfo in userList){

trace(user.getUid());

trace(user.getTitle());

trace(user.getBeginTime());

trace(user.getEndTime());

trace(user.getCurrentMoney());

trace(user.getState());

trace(user.getIsMember());

}

}

}

}



代码说明UserInfo为包含user全部信息的实体类,BUserInfo则是

UserInfo实体的业务层基本业务类,其中包含返回所有用户列表的

GetUserInfoList()方法,具体可以参看的完整源代码。



完整源代码下载地址:

http://www.lidaren.com/code/FLashXML/src.zip
--------------------------------------------------------------------------------------
- 版权声明:
- 如在本页面内无特别说明,本文内容均为[李大仁博客]原创,本文版权归[李大仁博客]所有。
- 欢迎转载,转载请务必在文章页面明显位置提供原文链接并注明出处。欢迎您在转载本文时保留本段声明。
- 文章标题: [AS]flashAS实现获取远程服务器xml数据并解析的应用
- 独立博客: 李大仁博客
- 永久链接:http://www.lidaren.com/archives/527
--------------------------------------------------------------------------------------
以上内容由博客自动发布工具自动发布,最终显示内容和效果会与原文内容有所偏差,敬请谅解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值