Показать сообщение отдельно
Старый 22.08.2009, 15:57
Keenan вне форума Посмотреть профиль Отправить личное сообщение для Keenan Найти все сообщения от Keenan
  № 1  
Ответить с цитированием
Keenan

Регистрация: Feb 2006
Сообщений: 33
По умолчанию Многомерный массив

Подгружаю xml файл catalogue1.xml

Код:
<?xml version="1.0" encoding="UTF-8"?>
<catalogue>
	<category>
		<item>
			<article>001</article>
		</item>
		<item>
			<article>002</article>
		</item>
	</category>
	<category>
		<item>
			<article>003</article>
		</item>
		<item>
			<article>004</article>
		</item>
	</category>
</catalogue>
и передаю его в многомерный массив

Код AS1/AS2:
var catalogue = new Array();
cat_xml = new XML();
cat_xml.ignoreWhite = true;
cat_xml.load('catalogue1.xml');
cat_xml.onLoad = function(success) {
	if (success) {
		parseFile(cat_xml);
		showArray();
	}
};
 
var a:Number = 0;
var b:Number = 0;
var c:Number = 0;
 
function parseFile(xmlDoc_xml) {
	for (var aNode:XMLNode = xmlDoc_xml.firstChild.firstChild; aNode != null; aNode=aNode.nextSibling) {
		catalogue[a] = new Array(aNode.childNodes.length);
		for (var bNode:XMLNode = aNode.firstChild; bNode != null; bNode=bNode.nextSibling) {
			catalogue[a][b] = new Array(bNode.childNodes.length);
			for (var cNode:XMLNode = bNode.firstChild; cNode != null; cNode=cNode.nextSibling) {
				catalogue[a][b][cNode.nodeName] = cNode.firstChild.nodeValue;
				n = new AccessPoint(catalogue[a][b][cNode.nodeName]);
			}
			b++;
		}
		a++;
	}
}
 
 
function showArray() {
	trace(catalogue[1][0]["article"]);
}
в output получаю undefined, но если trace(catalogue[0][0]["article"]) или trace(catalogue[0][1]["article"]), то все ок, выдает 001 и 002 соответственно. Такое впечатление, что при создании массива не учитывается вторая категория <category> </category>.

Подскажите, пожалуйста, в чем может быть проблема?