PDA

Просмотр полной версии : Загрузка XML


ZpiRit
23.01.2010, 15:31
Добрый день. Возможно вопрос ламерский, но я, к сожалению, не могу найти на него ответ.
Подскажите как мне заполнить DataGrid с помощью XML файла, который я загружаю по сети.
Данные принимаются нормально, но как их по человечески преобразовать в XMLList ума не приложу :( Помогите плз.

public function loadData():void
{
var loader:URLLoader = new URLLoader();
configureListeners(loader);

var request:URLRequest = new URLRequest("http://localhost/FunBisnes/podrazdeleniya.php");
try{
loader.load(request);
} catch ( error:Error){
trace("Unable to load requested document");
}
}

private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}

private function completeHandler(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
trace("completeHandler: " + loader.data);
var myXml:XML = new XML(loader.data);
myXmlList = myXml.emploee;
}

BeDLiNt
24.01.2010, 12:46
Экземпляры XML могут содержать только один корневой узел, это собственно Ваш загружаемый XML. XMLList может состоять из любого числа узлов потомков, именно он Вам и нужен в качестве dataProvider-а DataGrid. Вы можете получить XMLList потомков узла с заданным именем, просто воспользовавшись этим именем в качестве свойства экземпляра XML с помощью оператора точки (.) (средство доступа к потомку). Допустим, потомки главного узла у Вас называются "node", тогда это будет выглядеть так:
var myXMLList:XMLList = myXML.node;

ZpiRit
25.01.2010, 11:49
Спасибо.