如何读取位于用户桌面上的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);
}
但它不起作用。
答案 0 :(得分:7)
将URLLoader
与本地文件一起使用时,您应使用正确的URL scheme,例如file
,app
或app-storage
。 File.url
property会为您提供相应的本地网址,例如file:///C:/Users/Username/Desktop/
。
File.desktopDirectory.resolvePath('a.xml').url
另一种通常更好的方法是使用FileStream
API,因为它是为文件系统通信的目的而设计的,它也支持同步操作:
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);
答案 1 :(得分: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"));
答案 2 :(得分:0)
您还需要导入此内容:
import flash.net.URLRequest;