Vinny[x]
14.03.2004, 21:01
Суть дела такова. Имеется скрипт в котором функция считывает данные из ХML файла и заносит данные в массив.
Объясните мне, почему у меня не получается вывести данные массивы за пределами функции?
Как это сделать правильно, чтобы все работало?
Мне эти данные нужно обрабатывать по всей временной шкале.
Может посоветуете более рациональный вариант хранения данных, чем мой 3-х мерный массив?
----Скрипт---
function ParseXML() {
quiz = new Array();
rootnode = xmlDoc.firstChild;
he = rootnode.firstChild;
for(var q=0; rootnode.childNodes.length > q; q++ ){
if(q>0){
he = he.nextSibling;
}
children = he.childNodes;
quiz[q] = new Array();
for(var i = 0; i < children.length; i++){
quiz[q][i] = new Array();
trace(children[i].firstChild.toString());
quiz[q][i]["question"] = children[i].firstChild;
atrib = children[i].attributes;
for(attrib in atrib){
quiz[q][i]["answer"] = atrib[attrib];
trace(atrib[attrib].toString());
}
}
}
trace(quiz[0][3]["question"]); // --- Вот тут выводит данные
}
xmlDoc=new XML();
xmlDoc.ignoreWhite = true;
xmlDoc.load("test3.xml");
xmlDoc.onLoad = ParseXML;
stop();
trace(quiz[0][3]["question"]); // --- А вот тут не выводит
---test3.xml-------
<?xml version="1.0" encoding="utf-8"?>
<testing>
<quiz type="list" time="15">
<questionintro>Question 1</questionintro>
<answer correct="false">q1 Answer 1</answer>
<answer correct="true">q1 Answer 2</answer>
<answer correct="false">q1 Answer 3</answer>
<answer correct="false">q1 Answer 4</answer>
</quiz>
<quiz type="list" time="15">
<questionintro>Question 2</questionintro>
<answer correct="false">q2 Answer 1</answer>
<answer correct="true">q2 Answer 2</answer>
<answer correct="false">q2 Answer 3</answer>
<answer correct="false">q2 Answer 4</answer>
</quiz>
</testing>
Объясните мне, почему у меня не получается вывести данные массивы за пределами функции?
Как это сделать правильно, чтобы все работало?
Мне эти данные нужно обрабатывать по всей временной шкале.
Может посоветуете более рациональный вариант хранения данных, чем мой 3-х мерный массив?
----Скрипт---
function ParseXML() {
quiz = new Array();
rootnode = xmlDoc.firstChild;
he = rootnode.firstChild;
for(var q=0; rootnode.childNodes.length > q; q++ ){
if(q>0){
he = he.nextSibling;
}
children = he.childNodes;
quiz[q] = new Array();
for(var i = 0; i < children.length; i++){
quiz[q][i] = new Array();
trace(children[i].firstChild.toString());
quiz[q][i]["question"] = children[i].firstChild;
atrib = children[i].attributes;
for(attrib in atrib){
quiz[q][i]["answer"] = atrib[attrib];
trace(atrib[attrib].toString());
}
}
}
trace(quiz[0][3]["question"]); // --- Вот тут выводит данные
}
xmlDoc=new XML();
xmlDoc.ignoreWhite = true;
xmlDoc.load("test3.xml");
xmlDoc.onLoad = ParseXML;
stop();
trace(quiz[0][3]["question"]); // --- А вот тут не выводит
---test3.xml-------
<?xml version="1.0" encoding="utf-8"?>
<testing>
<quiz type="list" time="15">
<questionintro>Question 1</questionintro>
<answer correct="false">q1 Answer 1</answer>
<answer correct="true">q1 Answer 2</answer>
<answer correct="false">q1 Answer 3</answer>
<answer correct="false">q1 Answer 4</answer>
</quiz>
<quiz type="list" time="15">
<questionintro>Question 2</questionintro>
<answer correct="false">q2 Answer 1</answer>
<answer correct="true">q2 Answer 2</answer>
<answer correct="false">q2 Answer 3</answer>
<answer correct="false">q2 Answer 4</answer>
</quiz>
</testing>