Всем привет.. я хочу сделать парсер xml файла и занесение тех данных в массив, но у меня получается кривой массив и я не могу вывести данные из него.
Собственно вот функция:
function loadingVariablesForNews(){
console.log("сейчас активен режим новостей: "+$.cookie("_statViewLayer"));
var num_pages = $NUM_PAGES$,
num_entries = $NUM_ENTRIES$,
current_page = '$CURRENT_PAGE$',
current_page = current_page.replace(/<[^>]+>/g,'');
var obj= {MATERIAL_ID:[],TITLE:[],MESSAGE:[],ENTRY_URL:[],CATEGORY_NAME:[],CATEGORY_URL:[],COMMENTS_NUM:[],COMMENTS_URL:[],USER_NAME:[],USER_ID:[],RATING:[],RATED:[],READS_NUM:[],RUNS_NUM:[],DATE:[],TIME:[],TIMESTAMP:[]};
console.log("Всего страниц: $NUM_PAGES$");
console.log("Всего материалов: $NUM_ENTRIES$");
console.log("Текущая страница: "+current_page);
for (i=1;i<=num_pages;i++){
console.log(i);
$.ajax({
type: "GET",
url: "//cs-portalik.at.ua/api/stuff/0-"+[i],
dataType: "xml",
success: function(data){
$.each($(data).find("member"),function(){
var n = $(this).find("name").next().text(),
o = $(this).find("name").text();
"MATERIAL_ID" == o && obj.MATERIAL_ID.push(n);
"TITLE" == o && obj.TITLE.push(n);
"MESSAGE" == o && obj.MESSAGE.push(n);
"ENTRY_URL" == o && obj.ENTRY_URL.push(n);
"CATEGORY_NAME" == o && obj.CATEGORY_NAME.push(n);
"CATEGORY_URL" == o && obj.CATEGORY_URL.push(n);
"COMMENTS_NUM" == o && obj.COMMENTS_NUM.push(n);
"COMMENTS_URL" == o && obj.COMMENTS_URL.push(n);
"USER_NAME" == o && obj.USER_NAME.push(n);
"USER_ID" == o && obj.USER_ID.push(n);
"RATING" == o && obj.RATING.push(n);
"RATED" == o && obj.RATED.push(n);
"READS_NUM" == o && obj.READS_NUM.push(n);
"RUNS_NUM" == o && obj.RUNS_NUM.push(n);
"DATE" == o && obj.DATE.push(n);
"TIME" == o && obj.TIME.push(n);
"TIMESTAMP" == o && obj.TIMESTAMP.push(n);
});
if(i-1==3){
console.log("LAST");
shablon = "";
console.log(obj.MATERIAL_ID);
console.log(obj.TITLE);
$.each(obj.MATERIAL_ID,function(e){
if($.cookie("_statViewLayer")=='list'){
console.log(obj.TITLE[e]);
}
if($.cookie("_statViewLayer")=='block'){
shablon += "<div class='block default'><div class='bd'><div class='poster' style='background: url(/diablo3.png) no-repeat;'></div><div class='text'><h2>"+obj.TITLE[e]+"</h2><p>"+obj.MESSAGE[e]+"</p></div></div><ul class='info'><li class='time'><i>15 \u043c\u0438\u043d. \u043d\u0430\u0437\u0430\u0434<div>15 \u043c\u0438\u043d. \u043d\u0430\u0437\u0430\u0434</div></i></li><li class='comm' style='margin-left: 4px;float:right;'><i>\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432:<div>\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432:</div></i><i>237<div>237</div></i></li><li class='view' style='margin-left: 8px;float:right;'><i>\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u043e\u0432:<div>\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u043e\u0432:</div></i><i>190<div>190</div></i></li></ul></div>";
}
});
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus); alert("Error: " + errorThrown);
}
});
}
$(".wrapContent .content").html(shablon);
}
На 39 строке я пытался определить последний цикл и выполнить действия, но почему-то "i" всегда был равен 3 или 4.. я просто в замешательстве..
Еще на 7 строке пытался сделать массив, но получилось криво.
Помогите исправить код и переработать массив примерно в такой вид:
material[nomer].TITLE - вывод
material[3].MATRIAL_ID - вывод
[1]:{TITLE:'название','MATERIAL_ID':'номер'}
[2]:{TITLE:'название','MATERIAL_ID':'номер'}
[3]:{TITLE:'название','MATERIAL_ID':'номер'}
[4]:{TITLE:'название','MATERIAL_ID':'номер'}
Что-то вроде того.. просто давно не занимался javascript и много чего забыл, а в поиске ничего не смог найти.
И кстати, в цикле вроде все присваивалось, но вывести в нем и после него я не мог.
Жду помощи, подсказок и критики
