如何加载XML文件并使用Haxe解析它

mat*_*ace 3 haxe xml-parsing nme

我正在尝试创建一个桌面应用程序,它将加载itunes播放列表xml文件并使用Haxe和框架haxenme解析它.

我认为我遇到的问题可能是文件名中的空格未被正确转义,但我对此并不是100%肯定.

这是我到目前为止的代码.

package com.mattwallace.appname.actions;

    import nme.Assets;
    import haxe.xml.Fast;

    class GetPlayListAction 
    {
        public function new():Void
        {
            super();
        }

        public function execute():Void
        {

            var xml:Xml = Xml.parse(getXMLDesktopString());
            trace(xml);
        }

        private function getXMLDesktopString():String
        {

            var xmlString:String = sys.io.File.getContent(
                nme.filesystem.File.userDirectory.url + 
                "/Music/iTunes/iTunes Music Library.xml");
            return xmlString;
        }
    }
Run Code Online (Sandbox Code Playgroud)

mat*_*ace 6

好像我发布后我总能找到答案.问题是"File.userDirectory.url"我需要使用"File.userDirectory.nativePath"

这是更新的代码,为我解决了问题.

class GetPlayListAction
{
    public function new():Void
    {
    }

    public function execute():Void
    {

        var xml:Xml = Xml.parse(getXMLDesktopString());
        trace(xml);
    }

    private function getXMLDesktopString():String
    {
        var nativeUserDir:String = nme.filesystem.File.userDirectory.nativePath;
        var filePath:String = "/Music/iTunes/iTunes Music Library.xml";
        var fullPath = nativeUserDir + filePath;

        var xmlString:String = sys.io.File.getContent(fullPath);
        return xmlString;
    }
}
Run Code Online (Sandbox Code Playgroud)