Форум 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)
-   -   As не находит Nodes (http://www.flasher.ru/forum/showthread.php?t=115521)

Ar4ibald 01.09.2008 19:41

As не находит Nodes
 
Всем привет, вот проблема - екшн скрипт не видит нодов моего xml файла, уже разные xml файлы подставлял - ничего. Помогите плиз
Код:

private function parse(xml:XML):Array {
               
//Xml файл на данном этапе уже загружен
                if (!xml.hasChildNodes()) {
                        trace("Нет нодов."); ////// На этом программа и заканчиваеться,Нет нодов
                        return [];
                }
       
                // "results.items" (only one "items" node is expected)
                var resultsXmlNode:XMLNode = xml.firstChild;
                var resultsXmlList:Array = resultsXmlNode.childNodes;
                trace(xml);
                for(var i:Number=0; i<resultsXmlList.length; i++) {
                        var childXmlNode:XMLNode = resultsXmlList[i];
                        if(childXmlNode.nodeType != 1/*ELEMENT_NODE*/)
                                continue/*ignored*/;
                        /* else -- ELEMENT_NODE */
                       
                        switch(childXmlNode.nodeName) {
                                case "items":
                                trace("good");
                                        // NOTE:  only a single "items" is expected
                                        return parseItems(childXmlNode);

                                default/*unknown*/:
                                        trace("Unknown 'results' child: " + childXmlNode.nodeName);
                                        break;
                        }
                }
                return []/*no items*/;
        }

Сам xml
Код:

<results>

<item>
<thumbnail_url>img/1.jpg</thumbnail_url>
<title>Title 1</title>
<description>Opis 1</description>
<link_url>http://www.intersog.com.ua</link_url>
<source_logo_url>img/logo1.jpg</source_logo_url>
<source_website_name>Company1</source_website_name>
<source_website_extended_name>Company extended</source_website_extended_name>
 <type></type>
<price></price>
<list_price></list_price>
<keywords></keywords>
</item>
</results>


MrPoma 01.09.2008 20:06

Трэйсили?

Ar4ibald 01.09.2008 22:05

да, xml файл загружаеться, а нодов как будто бы нет

Wolsh 02.09.2008 00:28

Только странный Вы отрывок привели. Какой смысл показывать весь этот код, если он заведомо не выполняется, но скрыть действительно важное - как загружается, где трейсится. Может у Вас тупо ignoreWhite не прописан или, что более вероятно - никакого xml Вы в эту функцию не получаете, потому что запускаете ее так:
Код:

my_xml.onLoad = parse;
Но событие онЛоад отдает параметром не xml - он является объектом, вызвавшим событие))))) - а булево значение, удалась ли загрузка. Это не мувиклипЛоадер! xml - сам себе листенер загрузки данных)))

Ar4ibald 02.09.2008 01:04

прошу извинения

Код:

public function loadItems(itemString:String):Array {
               
               
                if((itemString == null) || (itemString.length < 1)) {
                        trace("There is no item XML string.");
                        return [];
                } /* else -- there is an item string (with at least one character in it) */

                var itemsXml:XML = new XML();
               
                        itemsXml.ignoreWhite = true;
                        itemsXml.onLoad=function(){
                                  myXML.onLoad = function(success) {
                        trace("XML Loaded");//// выдает постоянно, что xml загрузился  :((((
                        }

                                      }
                        return parse(itemsXml);
               
               
               
        }


Wolsh 02.09.2008 01:41

Цитата:

//// выдает постоянно, что xml загрузился :((((
Ну а что еще она может выдавать, Вы же не проверяете - действительно ли загрузился? Зачем Вам success выдается? Если он равен false, то произошла ошибка загрузки. У Вас же трейс выполняется в любом случае, это не показатель. Кроме того, я ничего не понимаю в этих двойных онЛоадах... Т.е. у Вас когда загрузится один xml, назначается обработчик события окончания загрузки другого xml... А если он загрузился раньше? Не понимаю, чего Вы хотите. Может мне просто спать уже пора, извините если че не так наговорил)).

Ar4ibald 02.09.2008 03:19

ужос, разбираюсь в чужом коде по надобности и баги исправляю. Да ну его, лучше свой с нуля написать - быстрее будет.Спасибо за советы


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

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