xml-parsing haxe nme

xml parsing - ¿Cómo cargo un archivo XML y lo analizo usando Haxe



xml-parsing nme (2)

Intento crear una aplicación de escritorio que cargue el archivo xml de la lista de reproducción de itunes y analizarlo con Haxe y framework haxenme.

Creo que el problema que estoy teniendo puede ser que los espacios en el nombre del archivo no se hayan escapado correctamente, pero no estoy 100% seguro de esto.

Aquí está el código que tengo hasta ahora.

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


Bueno, parece que tan pronto como publico siempre encuentro la respuesta. El problema era "File.userDirectory.url" Necesitaba usar "File.userDirectory.nativePath"

Aquí hay un código actualizado que me solucionó el problema.

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


import haxe.Http; import haxe.xml.Fast; class XmlParsRead { function new() { //asynchronous call var resource_url = new haxe.Http("http://localhost:96/SCO1.2/imsmanifest.xml"); // onData event method will catch the response data if request is success resource_url.onData = function(resource_url) { var xml = Xml.parse(resource_url); // to see the xml file //trace(xml); // enter into xml file 1st element var xmlReadFirstElement = new Fast(xml.firstElement()); // see the element name trace(xmlReadFirstElement.name); // I want to go resources tag "''node'' is predefine attribute it reprasent node(tag<some>) in xml file " var resesNode = xmlReadFirstElement.node.resources; // name is predefined attribute to see the tag name trace(resesNode.name); // I want to go resource(it is sub of resources tag ) var res = resesNode.node.resource; // to see the resource tag name trace(res.name); // I''ve to read href attribute in <resource>tag i.e -<resource identifier="SCO_RES" adlcp:scormtype="sco" href="some.htm" type="webcontent"> ..</resource> var res_href = res.att.href; trace(res_href); // next read the list of sub tags( <file>) resource tag using loop // RES(res) is point the resource tag and NODES(nodes) is predefine attributes we can use to iterate list of sub tags or sub nodes for (subtaghref in res.nodes.file) { //<file href="some.htm"/> trace(subtaghref.att.href); } } // making the asynchronous request resource_url.request(false); } public static function main() { new XmlParsRead(); } }