PDA

Просмотр полной версии : XML в многомерный массив


dimas007
30.05.2008, 00:17
Сеньоры, помогите распарсить 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
сорри ступил я. благодарю товарищи, счастья в ваши дома :)