Flex ComboBox 加载xml数据

简介:


xml数据:
<?xml version="1.0" encoding="utf-8" ?>
- < cllblist >
- < cllb >
< typename > 翻唱彩铃 </ typename >
< typevalue > 1 </ typevalue >
</ cllb >
- < cllb >
< typename > 原创彩铃 </ typename >
< typevalue > 2 </ typevalue >
</ cllb >
- < cllb >
< typename > 搞笑彩铃 </ typename >
< typevalue > 3 </ typevalue >
</ cllb >
- < cllb >
< typename > 节日问候 </ typename >
< typevalue > 4 </ typevalue >
</ cllb >
- < cllb >
< typename > 童声童趣 </ typename >
< typevalue > 5 </ typevalue >
</ cllb >
- < cllb >
< typename > 其他 </ typename >
< typevalue > 6 </ typevalue >
</ cllb >
</ cllblist >


代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx=" http://www.adobe.com/2006/mxml" creationComplete="Init()" width="250" height="215" styleName="winupload" cornerRadius="20" borderStyle="none">
<mx:Script>
<![CDATA[
import mx.messaging.messages.ErrorMessage;
import mx.events.ListEvent;
import mx.events.ToolTipEvent;
import mx.utils.ArrayUtil;
import mx.utils.ObjectUtil;
import mx.events.IndexChangedEvent;
import flash.display.*;
import flash.errors.*;
import flash.events.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.text.*;
import mx.formatters.DateFormatter;
import mx.controls.sliderClasses.Slider;
import mx.events.SliderEvent;
import mx.events.VideoEvent;
import flash.events.EventDispatcher;
import mx.controls.Alert;
import mx.utils.ObjectUtil;
import mx.controls.TileList;
import mx.managers.PopUpManager;
private var UserMobile:String="";//用户名
private var IsLogin:Boolean=false;//是否登录
private var xmlarray:Array=null;
private function Init():void
{
var requestBz:URLRequest=new URLRequest(" http://diy.bonson.cn/soft/CLLBList.aspx");
var bzloader:URLLoader=new URLLoader();
bzloader.dataFormat=URLLoaderDataFormat.BINARY;
bzloader.load(requestBz);
bzloader.addEventListener(Event.COMPLETE,loadLbFinish);
/*
this.width=250;
this.height=215;
var requestBz:URLRequest=new URLRequest(" http://diy.bonson.cn/soft/GetFlashSession.aspx");
var bzloader:URLLoader=new URLLoader();
bzloader.dataFormat=URLLoaderDataFormat.BINARY;
bzloader.load(requestBz);
bzloader.addEventListener(Event.COMPLETE,loadSessionFinish);
this.x = this.parent.width / 2 - this.width / 2;
this.y = this.parent.height / 2 - this.height / 2;
this.width=0;
this.height=0;
*/
}
private function loadSessionFinish(event:Event):void
{
var BA:ByteArray = new ByteArray;
BA.writeBytes((event.target as URLLoader).data);
BA.position = 0;
var result:String=BA.readMultiByte(BA.length,"utf-8").replace("\r\n","");

var tempstr:String="false";
var i:int=0;
for(i;i<result.length;i++)
{
if(result.charAt(i) != tempstr.charAt(i))
{
this.IsLogin=true;
var val:Array=result.split("|");
UserMobile=val[1];
break;
}
}
if(this.IsLogin==false)
{
Alert.show("请您先登录!","提示信息",Alert.OK);
PopUpManager.removePopUp(this);
}
else
{
var requestBz:URLRequest=new URLRequest(" http://diy.bonson.cn/soft/CLLBList.aspx");
var bzloader:URLLoader=new URLLoader();
bzloader.dataFormat=URLLoaderDataFormat.BINARY;
bzloader.load(requestBz);
bzloader.addEventListener(Event.COMPLETE,loadLbFinish);
this.width=250;
this.height=215;
}
}

private function loadLbFinish(event:Event):void
{
var BA:ByteArray = new ByteArray;
BA.writeBytes((event.target as URLLoader).data);
BA.position = 0;
var result:String=BA.readMultiByte(BA.length,"utf-8").replace("\r\n","");
var cllb:XML = XML(result);
var results:XMLList = cllb.children();
var array:Array = ElementToAttr(results);
xmlarray=ElementToAttr(results);
//this.ddl_cllb.labelField="typename";
//this.ddl_cllb.data=array["typevalue"];
this.ddl_cllb.dataProvider = array;
}
public function ElementToAttr(results:XMLList):Array
{
var array:Array=new Array();
for each(var child:XML in results)
{
var obj:Object=new Object();
//方法1:
/*
obj[child.nodeKind()]=child[child.nodeKind()];
for each(var ite:XML in child.children())
{
obj[ite.name().toString()]=child[ite.name().toString()];
}
*/
//方法2:
obj["label"]=child.typename;
obj["data"]=child.typevalue;
array.push(obj);
}
return array;
}
private function ddlchange():void
{
this.txt_mc.text=this.ddl_cllb.selectedLabel+"|"+String(this.ddl_cllb.value);
for(var i:int=0;i<xmlarray.length;i++)
{
this.txt_js.text+= xmlarray[i]["typename"]+"|"+xmlarray[i]["typevalue"]+"\r";
}
}
private function Upload():void
{

}
]]>
</mx:Script>
<mx:Label text="作品类型:" x="10" y="19"/>
<mx:Label text="彩铃名称:" x="10" y="65"/>
<mx:TextArea x="76" y="105" height="62" width="160" wordWrap="true" maxChars="200" id="txt_js"/>
<mx:Button label="返 回" click="PopUpManager.removePopUp(this);" horizontalCenter="48" verticalCenter="84"/>
<mx:Button label="上 传" click="Upload()" id="btn_upload" enabled="true" horizontalCenter="-50" verticalCenter="84"/>
<mx:TextInput x="76" y="63" width="160" editable="true" maxChars="50" id="txt_mc"/>
<mx:Label text="作品介绍:" x="10" y="125"/>
<mx:ComboBox x="76" y="16" id="ddl_cllb" change="ddlchange()" selectedIndex="0" editable="false"></mx:ComboBox>
</mx:Canvas>



本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/archive/2009/08/25/1553467.html,如需转载请自行联系原作者

相关文章
|
5天前
|
XML 前端开发 数据格式
请描述如何使用`BeautifulSoup`或其他类似的库来解析 HTML 或 XML 数据。
【2月更文挑战第22天】【2月更文挑战第67篇】请描述如何使用`BeautifulSoup`或其他类似的库来解析 HTML 或 XML 数据。
|
5天前
|
XML 前端开发 数据格式
BeautifulSoup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据
【5月更文挑战第10天】BeautifulSoup 是 Python 的一个库,用于解析 HTML 和 XML 文件,即使在格式不规范的情况下也能有效工作。通过创建 BeautifulSoup 对象并使用方法如 find_all 和 get,可以方便地提取和查找文档中的信息。以下是一段示例代码,展示如何安装库、解析 HTML 数据以及打印段落、链接和特定类名的元素。BeautifulSoup 还支持更复杂的查询和文档修改功能。
23 1
|
5天前
|
XML 机器学习/深度学习 JSON
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
31 0
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
|
5天前
|
XML 数据格式
加载 XML 字符串
这段代码展示如何在不同浏览器中加载和解析XML字符串。对于非IE浏览器,它使用DOMParser创建一个新的解析器对象,然后调用parseFromString方法。而在IE中,则通过ActiveXObject创建“Microsoft.XMLDOM”对象,使用loadXML方法进行解析。注意,IE的async属性设为false以同步加载。
|
5天前
|
XML 数据格式
加载 XML 字符串
这段代码展示如何在不同浏览器中加载和解析XML字符串。对于非IE浏览器,它使用DOMParser创建一个新的解析器实例,然后调用parseFromString方法。在IE中,它创建一个ActiveXObject,使用loadXML方法进行解析。注意,IE设置async为false以同步加载。
|
5天前
|
XML 存储 JavaScript
XML DOM 加载函数
`loadXMLString()`函数被封装在名为&quot;loadxmlstring.js&quot;的外部JavaScript文件中,用于加载XML文档。在示例HTML中,这个函数被调用来处理动态生成的XML字符串,该字符串描述了一本名为&quot;Everyday Italian&quot;的书籍信息。之后,可以在`code goes here.....`处进一步处理`xmlDoc`对象。
|
5天前
|
XML 存储 JavaScript
XML DOM 加载函数
`loadXMLDoc()` 是一个JavaScript函数,用于加载XML文档。它支持XMLHttpRequest和ActiveXObject,适应不同浏览器。函数定义存储在名为`loadxmldoc.js`的外部文件中,包含在HTML `&lt;head&gt;`标签内,然后在页面脚本中调用来获取XML数据,如`books.xml`。接下来的章节将介绍如何处理加载的数据。
|
5天前
|
XML 数据格式
加载 XML 字符串
这段代码展示了在不同浏览器环境下如何加载和解析XML字符串。对于非IE浏览器,它创建一个`DOMParser`对象,然后使用`parseFromString`方法。而在IE中,它创建一个`ActiveXObject`的实例,通过`loadXML`方法进行解析。
|
5天前
|
Java 数据库连接 mybatis
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
20 1
|
5天前
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
18 1