|
|
|||||
Регистрация: Aug 2008
Адрес: moscow
Сообщений: 137
|
xml и ignoreWhite
доброго времени суток. имеется файл хмл.
<photos> <photo> <pathToLarge>i2/bhambi.jpg</pathToLarge> <pathToSmall>i2/bhambi_sm.jpg</pathToSmall> <client>Bhambi</client> <URL>http://bhambi.com/</URL> <technologies> <item>html</item> <item>flash</item> <item>php</item> <item>.NET</item> </technologies> <readMoreLink>link1</readMoreLink> </photo> ... </photos> var url:String = "materials2.xml"; dataXML = new XML(); dataXML.ignoreWhite = true; dataXML.onLoad = loadData; dataXML.load(url); function loadData(){ var photos = dataXML.firstChild; max = photos.childNodes.length; trace (max); var temp = 1; _root.allWorksLinks = this.childNodes[1].childNodes[7].firstChild.toString(); for(var i=0;i<9;i++){ var temp1 = 1; var index = 0; _root.lagePics[i] = this.childNodes[1].childNodes[temp].childNodes[1].firstChild.toString(); _root.smallPics[i] = this.childNodes[1].childNodes[temp].childNodes[3].firstChild.toString(); _root.client[i] = this.childNodes[1].childNodes[temp].childNodes[5].firstChild.toString(); _root.path[i] = this.childNodes[1].childNodes[temp].childNodes[7].firstChild.toString(); _root.readMoreLinks[i] = this.childNodes[1].childNodes[temp].childNodes[11].firstChild.toString(); while(this.childNodes[1].childNodes[temp].childNodes[9].childNodes[temp1].firstChild.toString() != undefined){ if(this.childNodes[1].childNodes[temp].childNodes[9].childNodes[temp1].firstChild.toString() != undefined){ ... temp1 += 2; index += 1; } temp += 2; } _root.loadFirst(); } |
|
|||||
Регистрация: Oct 2008
Сообщений: 30
|
При анализе скрипта не совсем понял ссылки на root(типа _root.allWorksLinks=...) Это что за объекты? И если можно распишете порядок разборки файла .xml, так будет проще найти ошибку.
|
|
|||||
Регистрация: Aug 2008
Адрес: moscow
Сообщений: 137
|
вот весь хмл
<?xml version="1.0" encoding="iso-8859-1"?> <photos> <photo> <pathToLarge>i2/bhambi.jpg</pathToLarge> <pathToSmall>i2/bhambi_sm.jpg</pathToSmall> <client>Bhambi</client> <URL>http://bhambi.com/</URL> <technologies> <item>html</item> <item>flash</item> <item>php</item> <item>.NET</item> </technologies> <readMoreLink>link1</readMoreLink> </photo> <photo> <pathToLarge>i2/denver.jpg</pathToLarge> <pathToSmall>i2/denver_sm.jpg</pathToSmall> <client>Denver</client> <URL>http://denvervip.com/</URL> <technologies> <item>html</item> <item>css</item> <item>flash</item> </technologies> <readMoreLink>link2</readMoreLink> </photo> <photo> <pathToLarge>i2/efrat.jpg</pathToLarge> <pathToSmall>i2/efrat_sm.jpg</pathToSmall> <client>Efrat</client> <URL>http://efrat-k.com/</URL> <technologies> <item>html</item> <item>flash</item> <item>ASP.NET</item> </technologies> <readMoreLink>link3</readMoreLink> </photo> <photo> <pathToLarge>i2/gipo.jpg</pathToLarge> <pathToSmall>i2/gipo_sm.jpg</pathToSmall> <client>Gipo</client> <URL>http://gipo.by/</URL> <technologies> <item>html</item> <item>flash</item> <item>ASP.NET</item> </technologies> <readMoreLink>link4</readMoreLink> </photo> <photo> <pathToLarge>i2/neatnails.jpg</pathToLarge> <pathToSmall>i2/neatnails_sm.jpg</pathToSmall> <client>Neatnails</client> <URL>http://neatnails.com/</URL> <technologies> <item>html</item> <item>flash</item> <item>ASP.NET</item> </technologies> <readMoreLink>link5</readMoreLink> </photo> <photo> <pathToLarge>i2/ruflex.jpg</pathToLarge> <pathToSmall>i2/ruflex_sm.jpg</pathToSmall> <client>Ruflex</client> <URL>http://ruflex.com/</URL> <technologies> <item>html</item> <item>flash</item> <item>ASP.NET</item> </technologies> <readMoreLink>link6</readMoreLink> </photo> <photo> <pathToLarge>i2/rusreg.jpg</pathToLarge> <pathToSmall>i2/rusreg_sm.jpg</pathToSmall> <client>Rusreg</client> <URL>http://rusreg.ru/</URL> <technologies> <item>html</item> <item>flash</item> <item>ASP.NET</item> </technologies> <readMoreLink>link7</readMoreLink> </photo> <photo> <pathToLarge>i2/wingshooting.jpg</pathToLarge> <pathToSmall>i2/wingshooting_sm.jpg</pathToSmall> <client>Wingshooting</client> <URL>http://wingshooting.com/</URL> <technologies> <item>html</item> <item>flash</item> <item>ASP.NET</item> </technologies> <readMoreLink>link8</readMoreLink> </photo> <photo> <pathToLarge>i2/yakova.jpg</pathToLarge> <pathToSmall>i2/yakova_sm.jpg</pathToSmall> <client>Yakova</client> <URL>http://yakova.com/</URL> <technologies> <item>html</item> <item>flash</item> <item>ASP.NET</item> </technologies> <readMoreLink>link9</readMoreLink> </photo> <allWorksLink>http://google.com/</allWorksLink> </photos> |
|
|||||
если не вдаватся в подробности:
без ignoreWhite у тебя firstChild - это перенос каретки, который ясен пень никакой длинны не имеет. Это баг еще 5го плеера, я чуть сума не сошел, в свое время, пока не понял откуда там ноги растут. Так вот. не грузятся видно потому что там не в то место ты смотришь... вместо хачить твой код, предлагаю воспользоватся моим. смотри http://ruslanshestopal.com/docs/rss_...ash_reader.php код будет всего лишь такой var url:String = "materials2.xml"; import XMI; var my_xml:XMI = new XMI(); my_xml.addListener(this); my_xml.load(url); // this.onXMLLoad = function(xml_obj:Object, xmi_instance:XMI) { var items_length:Number = xml_obj.photo.length; trace("my_xml loaded:"+items_length); for (var i = 0; i<items_length; i++) { var big_img = xml_obj.photo[i].pathToLarge; var small_img = xml_obj.photo[i].pathToSmall; var tech_arr = xml_obj.photo[i].technologies.item; trace("big image:"+big_img+" small image:"+small_img); trace("Technologies ->>"+tech_arr); } }; this.onLoadFailure = function() { trace("fail to load"); };
__________________
чиню баги по скриншотам и фотографиям кода |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
А где Вы видели у документа XML еще какой-то нод, кроме нулевого? Ну не считая комментариев и прочих служебных, которые мы не обрабатываем?
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Aug 2008
Адрес: moscow
Сообщений: 137
|
все равно. если записываю так, но присутствует dataXML.ignoreWhite = true; не находит путь к форо и сама длина undefined. а если эту строчку удаляю, то длин а рана 21 (вместо положенного 10)
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вы не поняли. Нет никакого this.childNodes[1] и быть не может, по крайней мере если ignoreWhite = true. (А оно должно быть тру обязательно)
У документа есть только ОДИН нод - this.childNodes[0] он же this.firstChild. Вы просто не понимаете, что this здесь - это сам загруженный XML, весь. this - это не <photos>. И у this есть только один нулевой нод - <photos>, больше нет в принципе. Т.е. childNodes[1] нет вообще, а Вы весь код к нему обращаетесь. Откуда берется childNodes[1] при отключенном игнорировании - Вам INK• объяснил. Пробел или перенос становится нулевым нодом, а <photos> - первым. Только не пытайтесь это использовать)))))) С отключенным игнорированием Вы никогда корректную разборку не сделаете, и не надо. Поэтому пожалуйста, перестаньте играть со строчкой во вкл/выкл и сконцентрируйтесь на том, что Вы подразумевали под this. Переносы становятся нодами - отсюда такая длина.
__________________
Reality.getBounds(this); |
|
|||||
ну раз ты до этого места уже дошел.
то вот в этом то и кроится разгадка (n-1)/2 ! тоесть явно что то лишнее. Так вот это лишнее и есть переносы. было [0] стало [1] Тоесть сместилось из за того что переносы тоже учитываются.
__________________
чиню баги по скриншотам и фотографиям кода |
Часовой пояс GMT +4, время: 06:08. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|