Я полный noob для JavaScript и jQuery (начал учиться вчера), но я уже нахожу его очень простым в использовании, настолько интуитивным! :)
Итак, мне нужно разобрать XML файл (который будет наплевать на удаленный PHP файл в зависимости от запроса, который я отправляю), и поместить его в массив, который я позже смогу использовать для рисования диаграмм и т.д.
Трюк здесь заключается в том, что XML файл будет иметь другую структуру и категории в зависимости от запроса, поэтому мне нужен своего рода "универсальный" парсер.
Единственное, что я могу контролировать, это то, что все базовые элементы будут называться "item", но категории внутри каждого элемента будут меняться в зависимости от запроса, который будет изменен пользователем во время выполнения.
Структура всегда будет выглядеть так:
<results>
<item>
<variable1>value1</variable1>
<variable2>value2</variable2>
<variable3>value3</variable3>
<variable4>value4</variable4>
<variable5>value5</variable5>
</item>
<item>
<variable1>value6</variable1>
<variable2>value7</variable2>
<variable3>value8</variable3>
<variable4>value9</variable4>
<variable5>value10</variable5>
</item>
</results>
И я хотел бы иметь такой массив:
results[0].variable1 = value1
results[0].variable2 = value2
results[0].variable3 = value3
results[0].variable4 = value4
results[0].variable5 = value5
results[1].variable1 = value6
results[1].variable2 = value7
results[1].variable3 = value8
results[1].variable4 = value9
results[1].variable5 = value10
Но, как я уже сказал, я могу гарантировать только имя "item". Имена переменных будут переменными в каждом случае.
Какие-либо предложения?
Заранее спасибо!
Попробуй это,
var arr={};// Object if you want an array then use=> var arr=[];
$('item').each(function(index,value){
var data={};
$(this).find('*').each(function(i,v){
data[$(this).prop('tagName')]=$(this).text();
});
arr[index]=data;
})
console.log(arr);