![]() |
|
|
|||||
Регистрация: Apr 2008
Сообщений: 81
|
![]() Делал делал и не чего не получилось.
ХМЛ <?xml version="1.0" ?> <CATALOG> <OBJECT id="0001" com="1" price="10000" data="01.02.2009" video="videoxml.mp3"> <LOCATION street="Rekordnaya" district="Malina" /> <FLOOR> <FLOORS state="5" /> <ALL state="10" /> </FLOOR> <PLANNING> <COM1 size="30" foto="imgID0001COM1" /> <KITCHEN size="20" foto="" /> <INFO>tualet - 10</INFO> <INFO>vannaya - 10</INFO> </PLANNING> <REPAIR state="evro"> <INFO>lya lya topolya</INFO> <INFO>lya lya topolya2</INFO> </REPAIR> <DESCRIPTION> <GAZ state="gorod" /> <INTERNET state="TENET" /> <INFO>mebel</INFO> <INFO>pol</INFO> <INF1O>stenu</INF1O> </DESCRIPTION> <DESCRIPTION_2> <LIFT state="good"/> <DOMOFON state="yes" /> <VID state="detskiy sad" /> <INFO>marazin</INFO> </DESCRIPTION_2> <MINUS> <INFO>NO metro</INFO> </MINUS> <WHOSE name="Denis"> <TEL name="DENIS" tel="80672947321" /> </WHOSE> </OBJECT> function CreateComboBox(myXML:XML):void { var dpcb:DataProvider = new DataProvider(); var cb:ComboBox = new ComboBox(); cb.dataProvider = dpcb; cb.move(100,100); cb.addEventListener(Event.CHANGE, Selected); addChild(cb); var object2:XMLList = myXML.OBJECT[0].children(); for each (var item:XML in object2) { trace(item.name()); dpcb.addItem( { label: item.name() } ); //trace("att "+item.attributes().length()); for(var j1:int;j1<item.attributes().length();j1++) { //trace(item.attributes()[j].name()); dpcb.addItem( { label: item.attributes()[j1].name() } ); } trace("child "+item.children().length()); for(var j2:int;j2<item.children().length();j2++) { trace(" hasSi "+item.children()[j2].children().hasSimpleContent()); if(item.children()[j2].children().length() > 0) dpcb.addItem( { label: item.children()[j2] } ); else(item.children()[j2].children().hasSimpleContent() == true ) dpcb.addItem( { label: item.children()[j2].attributes().name() } ); } } } Всех детей(если само закрывающейся то атрибуты(имена)) и всех детей детей, если есть само закрывающейся дети то и их тоже теги. у меня вылазит всякий бред в начале вроде нормально а потом тар тарары |
|
|||||
Modus ponens
|
Лучше напишите, как должен выглядеть результат после фильтрации... в коде больше 50% лишнего, и не понятно, что он должен делать.
hasSimpleContent - метод XML, а не XMLList... Да... и else это не функция...
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 05.06.2009 в 16:13. |
|
|||||
Регистрация: Apr 2008
Сообщений: 81
|
LOCATION
street district FLOOR state state PLANNIN COM1 <KITCHEN ="20" ="" /> size foto KITCHEN size foto INFO REPAIR state INFO state state INTERNET INFO и так далее. ещё хотелось бы что бы ДЕТИ(первые) были не активны. ну нельзя было на них нажать и они были другого цвета |
|
|||||
Modus ponens
|
import fl.data.DataProvider; import fl.controls.ComboBox; var xml:XML = <CATALOG> <OBJECT id="0001" com="1" price="10000" data="01.02.2009" video="videoxml.mp3"> <LOCATION street="Rekordnaya" district="Malina" /> <FLOOR> <FLOORS state="5" /> <ALL state="10" /> </FLOOR> <PLANNING> <COM1 size="30" foto="imgID0001COM1" /> <KITCHEN size="20" foto="" /> <INFO>tualet - 10</INFO> <INFO>vannaya - 10</INFO> </PLANNING> <REPAIR state="evro"> <INFO>lya lya topolya</INFO> <INFO>lya lya topolya2</INFO> </REPAIR> <DESCRIPTION> <GAZ state="gorod" /> <INTERNET state="TENET" /> <INFO>mebel</INFO> <INFO>pol</INFO> <INF1O>stenu</INF1O> </DESCRIPTION> <DESCRIPTION_2> <LIFT state="good"/> <DOMOFON state="yes" /> <VID state="detskiy sad" /> <INFO>marazin</INFO> </DESCRIPTION_2> <MINUS> <INFO>NO metro</INFO> </MINUS> <WHOSE name="Denis"> <TEL name="DENIS" tel="80672947321" /> </WHOSE> </OBJECT> </CATALOG>; function createComboBox(myXML:XML):void { var dpcb:DataProvider = new DataProvider(); var cb:ComboBox = new ComboBox(); cb.dataProvider = dpcb; cb.move(100, 100); //cb.addEventListener(Event.CHANGE, combo_changeHandler); addChild(cb); var items:XMLList = new XMLList(); myXML.OBJECT[0].*.((items += XML(name())) && (attributes().length() ? !(attributes().(items += XML(name()))) : true) && (children().length() ? children().(attributes().length() ? ((items += XML(name())) && attributes().(items += XML(name()))) : (items += XML(name()))) : true)); trace(items.toXMLString()); } createComboBox(xml); /* LOCATION street district FLOOR FLOORS state ALL state PLANNING COM1 size foto KITCHEN size foto INFO INFO REPAIR state DESCRIPTION GAZ state INTERNET state INFO INFO INF1O DESCRIPTION_2 LIFT state DOMOFON state VID state INFO MINUS INFO WHOSE name */ почему FLOORS не должен выводится, а COM1 должен. Я посчитал, что это ваша ошибка копи-паста...
__________________
Hell is the possibility of sanity |
|
|||||
Регистрация: Apr 2008
Сообщений: 81
|
хорошо. только мне хотелось бы что бы там где самозакрывающейся, то только атрибуты.
и подскажите как мне организовать, вот я хочу что бы это было русскими буквами но теги в ХМЛ русскими делать не хочу, как мне быть? |
|
|||||
Modus ponens
|
Просто напишите исходя из данного XML какой должен получится в итоге список... то что вы написали до этого ведет себя не последовательно:
т.е. либо после FLOOR не хватает FLOORS, либо после PLANNING не должно быть KITCHEN. А буквы пишите какие хотите. Главное чтобы XML был в кодировке UTF-8.
__________________
Hell is the possibility of sanity |
|
|||||
Регистрация: Apr 2008
Сообщений: 81
|
я просто хочу что бы значение оставалось , а имя было русское просто я на разных языках хочу сделать приложение.
да там в последовательности что то напутал. просто там где само закрывающеся не надо показывать НАМЕ а только теги |
|
|||||
Modus ponens
|
Ну, не знаю, попробую еще раз:
Пишите том языке, на каком хотите (какой хотите включает так же и русский язык. т.е. если вы хотите писать по-русски, то вы можете это сделать) - главное, сохраните XML файл в кодировке UTF-8. тег == <foo/> что такое HAME - я не знаю... Попробуйте сфрормулировать задачу так, чтобы кто-то кроме вас смог понять, чего вы хотите. Пока что вас непонятно ![]()
__________________
Hell is the possibility of sanity |
|
|||||
Регистрация: Apr 2008
Сообщений: 81
|
Из фрагмента:
<PLANNING> <COM1 size="30" foto="imgID0001COM1" /> должно получится PLANNING size foto ах, да как в комбоБохе делать значение, которое не видно, но будет связано с тем которые показывается пользователю к примеру: пользователь видет: size state а когда выберается, то передается 01 или 02 .. |
![]() |
![]() |
Часовой пояс GMT +4, время: 05:51. |
|
« Предыдущая тема | Следующая тема » |
Теги |
combobox , xml |
Опции темы | |
Опции просмотра | |
|
|