Вход

Просмотр полной версии : As не находит Nodes


Ar4ibald
01.09.2008, 19:41
Всем привет, вот проблема - екшн скрипт не видит нодов моего 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
ужос, разбираюсь в чужом коде по надобности и баги исправляю. Да ну его, лучше свой с нуля написать - быстрее будет.Спасибо за советы