我有一个连接到数据库的flex应用程序。有几个服务器运行数据库。目前,我有一个文本框“主机”和“端口”,用户可以在其中指定要连接的数据库。我想将其更改为带有主机列表的ComboBox。我知道如何在应用程序中对其进行硬编码,但我更希望应用程序在启动时读取xml(或其他)文件并使用其内容填充ComboBox(以防数据库IP在将来发生变化)。 XML看起来有点像:
<root>
<host ip="123.123.123.123" port="1234"/>
<host ip="255.255.255.123" port="2700"/>
<host ip="18.12.65.123" port="1270"/>
</root>
我该怎么做?我想将该文件与应用程序一起托管在服务器上。
答案 0 :(得分:0)
您应该从服务器加载文件(使用URLLoader
类)
然后你可以读取加载器的数据。
例如:
private var loader:URLLoader;
private function init():void {
loader=new URLLoader();
loader.addEventListener(Event.COMPLETE, dataLoaded);
loader.dataFormat=URLLoaderDataFormat.TEXT;
var req:URLRequest=new URLRequest("http://my-server/path/to/file");
loader.load(req);
}
private function dataLoaded(e:Event):void {
loader.removeEventListener(Event.COMPLETE, dataLoaded);
var data:String=loader.data;
//If the file is a flat text file (with 123.123.123.123:1234 on each line)
var lines:Array=data.split("\n");
for each(var line:String in lines) {
var i:Array=line.split(":");
trace("ip: " + i[0]);
trace("\nport: " + i[1]);
}
//If the file is an xml, do this
var x:XML=new XML(data);
for each(var host:XML in x.host) {
trace("ip: " + host.@ip);
trace("\nport: " + host.@port);
}
}
是的,您可以使用相对网址