Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Оптимизация куска парсера (http://www.flasher.ru/forum/showthread.php?t=72421)

Sh@man 26.11.2005 16:54

Оптимизация куска парсера
 
Помогите оптимизировать кусок кода, а то после рабочей недели ничего в голову не лезет. Спасибо.

this.cList = new XML();
this.cList = ListXML.firstChild;
this.media = this.cList.firstChild;
while (i<ListXML.firstChild.childNodes.length) {
curnode = this.media.firstChild;
//trace("this.media="+this.media);
ident = this.media.attributes.id;
//trace("ident="+ident);
ctype = curnode.firstChild.nodeValue;
ccode = curnode.nextSibling.firstChild.nodeValue;
ico_projection = curnode.nextSibling.nextSibling.firstChild.nodeValue;
built = curnode.nextSibling.nextSibling.nextSibling.firstChild.nodeValue;
light = curnode.nextSibling.nextSibling.nextSibling.nextSibling.firstChild.nodeValue;
sectorcode = curnode.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.firstChild.nodeValue;
X = curnode.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.firstChild.nodeValue;
Y = curnode.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.firstChild.nodeValue;
_location = curnode.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.firstChild.nodeValue;
rs = curnode.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.firstChild.nodeValue;
quant = curnode.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.firstChild.nodeValue;

....
this.media = this.media.nextSibling;
i++;
}

PinkPong 27.11.2005 03:23

сложно понять конечно...
не влазит столько за раз в голову
...
может вот такая штука поможет ? я пользуюсь на ура при разборе XML

метод без аргументов; возвращает следующий элемент XMLNode в дереве документа XML. Если при переборе достигнут конец документа, метод возвращает значение null.

исходный код
XMLNode.prototype.nextNode = function() {
if (this.firstChild != null) {
return this.firstChild;
}
var n = this;
while (n.nextSibling == null) {
if (n.parentNode) {
n = n.parentNode;
} else {
return null;
}
}
return n.nextSibling;
};
пример использования

myXML = new XML ("<n1><n2><n3></n3><n4><n5><n6><n7><n8><n9></n9></n8></n7></n6></n5></n4></n2><n10></n10></n1>");
nod = myXML.firstChild;
while (nod) {
trace (nod.nodeName);
nod = nod.nextNode();
}

автор вроде Iv

Sh@man 27.11.2005 14:53

Ок.Спасибо.Сейчас попробую.

PinkPong 27.11.2005 15:26

алгоритм немного сложный на первый взгляд...
нашел его когда нужно было XML парсить..
если сразу непонятно будет, возьми небольшой но реальный XML (не а в с) и пройди его на бумажке по этому алгоритму
сразу все понятно станет..
весьма изящно и работает на все 100 :D


Часовой пояс GMT +4, время: 20:23.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.