0

我有一个连接到数据库的弹性应用程序。有几个运行数据库的服务器。目前,我有一个文本框“主机”和“端口”,用户可以在其中指定他们想要连接的数据库。我想将其更改为带有主机列表的 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>

我怎么做?我想将文件与应用程序一起托管在服务器上。

4

1 回答 1

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);
    }
}

是的,您可以使用相对网址

于 2012-08-09T12:00:50.753 回答