Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   XML в многомерный массив (http://www.flasher.ru/forum/showthread.php?t=112507)

dimas007 30.05.2008 00:17

XML в многомерный массив
 
Сеньоры, помогите распарсить xml следующего вида :

Код:

<item>
  <title>first</title>
  <preview>/img/1.jpg</preview>
  <location>/videos/1.flv</location>
</item>

<item>
  <title>second</title>
  <preview>/img/2.jpg</preview>
  <location>/videos/2.flv</location>
</item>

и привести это к такому виду :

Код:

Arr[0]['title'] = "first";
Arr[0]['preview'] = "/img/1.jpg";
Arr[0]['location'] = "/videos/1.flv";

Arr[1]['title'] = "second";
Arr[1]['preview'] = "/img/2.jpg";
Arr[1]['location'] = "/videos/2.flv";


Манюня 30.05.2008 01:49

Код:

var xml : XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function(success:Boolean){
        if(success){               
                var item1:XMLNode = xml.firstChild;
                var item2:XMLNode = item1.nextSibling;                               
                Arr[0]['title'] = item1.childNodes[0].firstChild.toString();               
                Arr[0]['preview'] = item1.childNodes[1].firstChild.toString();
                Arr[0]['location'] = item1.childNodes[2].firstChild.toString();

                Arr[1]['title'] = item2.childNodes[0].firstChild.toString();
                Arr[1]['preview'] = item2.childNodes[1].firstChild.toString();
                Arr[1]['location'] = item2.childNodes[2].firstChild.toString();                       
        }
        else{
                trace('error');
        }
}
xml.load('m.xml');

Только ж массив сам там объяви.

iNils 30.05.2008 02:04

Код:

var Arr = new Array ();
var xml:XML = new XML ();
xml.ignoreWhite = true;
xml.onLoad = function (success:Boolean) {
        if (success) {
                for (var i:Number = 0; i < this.childNodes.length; i++) {
                        var node:XMLNode = this.childNodes[i];
                        Arr[i] = [];
                        for (var j:Number = 0; j < node.childNodes.length; j++) {
                                Arr[i][node.childNodes[j].nodeName] = node.childNodes[j].firstChild.nodeValue;
                        }
                }
        }
};
xml.load ('m.xml');


dimas007 30.05.2008 22:01

nodeValue почему-то выдаёт null

iNils 30.05.2008 22:07

Я код писал строго под xml в вопросе.

dimas007 30.05.2008 22:40

сорри ступил я. благодарю товарищи, счастья в ваши дома :)


Часовой пояс GMT +4, время: 17:44.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.