1

如何读取位于用户桌面上的 xml 文件?我试过这个:

import flash.events.Event;
import flash.net.URLLoader;

var myXML:XML = new XML();
var myLoader:URLLoader = new URLLoader(new URLRequest(File.desktopDirectory.nativePath + "/a.xml"));
myLoader.addEventListener(Event.COMPLETE, xmlLoaded);

function xmlLoaded(event:Event):void
{
    myXML = XML(myLoader.data);
    trace(myXML);       
}

但它不起作用。

4

3 回答 3

7

与本地文件一起使用时,URLLoader您应该使用正确的URL 方案,例如file或。该属性将为您提供适当的本地 URL,例如.appapp-storageFile.urlfile:///C:/Users/Username/Desktop/

File.desktopDirectory.resolvePath('a.xml').url

另一种通常更好的方法是使用FileStreamAPI,因为它是为文件系统通信而设计的,它还支持同步操作:

var file:File = File.desktopDirectory.resolvePath('a.xml');
var document:XML;

var stream:FileStream = new FileStream();
stream.open(file, FileMode.READ);
document = XML(stream.readUTFBytes(stream.bytesAvailable));
stream.close();

trace(document);
于 2013-09-29T14:52:34.130 回答
0

显然,这可以通过简单地添加一个'/'来完成。

var myLoader:URLLoader = new URLLoader(new URLRequest(File.desktopDirectory.nativePath + "/a.xml"));

改成:

var myLoader:URLLoader = new URLLoader(new URLRequest("/" + File.desktopDirectory.nativePath + "/a.xml"));
于 2013-09-29T09:15:10.307 回答
0

您还需要导入这个:

import flash.net.URLRequest;

于 2018-04-03T05:44:38.780 回答