PDA

Просмотр полной версии : запись в массив из xml файла


mtema
06.08.2007, 13:39
Вот код гружу из XML данные,все ок,а как правильно записать в массив?


stop();
my_xml = new XML();
my_xml.ignoreWhite = true;
my_xml.onLoad = function(ok) {
if (ok) {
f_www();
}
};
my_xml.load("xc.xml");
f_www = function () {

for (n=0; n<6; n++) {
way = my_xml.childNodes[0].childNodes[n].attributes.varr;
}
trace(way);
};

etc
06.08.2007, 13:42
А XML как выглядит?

mtema
06.08.2007, 13:46
А XML как выглядит?


<data>
<it varr="http://www.somewhere0.ru"/>
<it varr="http://www.somewhere1.ru" />
<it varr="http://www.somewhere2.ru" />
<it varr="http://www.somewhere3.ru" />
<it varr="http://www.somewhere4.ru/>
<it varr="http://www.somewhere5.ru" />
</data>


надо в массив значения загнать а потом их по элементу вытащить,еще думаю возникнут проблемы с чтением слешей или нет?

etc
06.08.2007, 14:09
f_www = function () {
links = [];
var nodes = my_xml.firstChild.childNodes;
for (var n=0; n<nodes.length; n++) {
way = nodes[n].attributes.varr;
links.push(way);
}
trace(links);
};

mtema
06.08.2007, 14:27
спасибо,но пока ждал ответа накатал вот так :

stop();
// Создаём xml
my_xml = new XML();
my_xml.ignoreWhite = true;
my_xml.onLoad = function(ok) {
if (ok) {
f_www();
}
};
my_xml.load("xc.xml");
f_www = function () {


for (n=0; n<6; n++) {
way = my_xml.childNodes[0].childNodes[n].attributes.varr;


for(i=0;i<1;i++){
var s = new Array();
s[i] = way;

}
trace(s);
}

};


на счет корректности хз,но вроде работает,а не подскажешь функцию сортировки массива в случайном порядке? Если такая есть,если нет то как реализвать случайное вытаскивание элемента из массива?

chingachgoog
06.08.2007, 14:45
не надо массив определять внутри цикла, да еще делать его локальным в функции (trace(s[0] из кода вне функции f_www).
Сортировка массива есть в поиске :)

etc
06.08.2007, 14:47
Math.random

mtema
06.08.2007, 20:00
как вывести ОДИН элемент? мне выдает кучу мусора при выводе k = (mass[1]);
уже запарился ((



stop();
my_xml = new XML();
my_xml.ignoreWhite = true;
my_xml.onLoad = function(ok) {
if (ok) {
f_www();
}
};
my_xml.load("xc.xml");

f_www = function () {
mass = [];
var nodes = my_xml.firstChild.childNodes;
for (var n=0; n<nodes.length; n++) {
s = nodes[n].attributes.marka;
mass.push(s);
}
//trace(mass);

fsort = function () {
return random(2)
}
mass.sort(fsort);
k = (mass[1]);

etc
06.08.2007, 20:02
k = mass[Math.floor(Math.random()*mass.length)]