Carolina, pelo q vc escreveu, creio q vc deveria popular o segundo combobox
com:

<s:dataProvider>
    <s:XMLListCollection source="{ID_combo1.selectedItem.nofilho.noneto}"/>
</s:dataProvider>

As infos q vc quer estão no <noneto> que estão em <nofilho> ,
ID_combo.selectedItem.noneto não existe.

vc poderia usar tb ID_combo.selectedItem..noneto (com .. mesmo) que é um
recurso do E4X que permite acessar os nós com o nome definido (no caso
<noneto>) em qq profundidade do nó q vc está (no caso todos os <noneto>
dentro de <noinicial>) não importando o quanto estejam aninhados dentro de
outros nós.

Abrs

-- 
Gustavo Martinez


2011/12/22 Carolina Duval <carolinaduval...@gmail.com>

> Gente, o XML não pode estar na aplicação,
> ele tem que ser externo para ser alterado posteriormente com mais
> netos,
> eu usei httpservices para buscar o xml externo e ficou assim:
>
> [Bindable]
> private var XMLTree:XML;
>
> private function init():void
>                        {
>                        var request:URLLoader = new URLLoader();
>                        request.addEventListener(Event.COMPLETE, setXML);
>                        request.load(new
> URLRequest("../assets/Content.xml"));
>                        }
>
>                        public function setXML(e:Event):void
>                        {
>                        XMLTree = new XML(e.target.data);
>                        }
>
>
> e populei os combos que preciso assim:
> <s:DropDownList id="drop1" labelField="@label">
> <s:dataProvider>
>        <s:XMLListCollection source="{XMLTree.noinicial}"/>
> </s:dataProvider>
> </s:DropDownList>
>
> porque o DropDownlis so aceita "xlist" e o resultado do urlrequest não
> é "xlist" por isso usei desta forma
>
> ate então esta parte esta funcionando, os meu combos estão todos sendo
> preenchidos,
> quando seleciono o ultimo combo ele deveria passar o valor do item
> combo selecionado mais o item da frente que não esta funcionando,
>
> o tree esta assim:
>
> <mx:Tree id="tree" dataProvider="drop1*.selectedItem.nofilhos" <!--
> *Aqui no caso vai o ultimo combo-->
> labelField="@label" /> nesta tree deveria aparecer os filhos com seus
> filhos <-(netos no caso), entenderam.
>
> On Dec 22, 8:02 am, Rogerio Gonzalez <rogerio.gonza...@gmail.com>
> wrote:
> > boa Luis,
> >
> > se redimiu!
> >
> > hehehehe :P
> >
> > Abraços
> >
> > Rogério
> >
> > 2011/12/21 Luis Eduardo <ledua...@suprasis.com.br>
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > >    Agora é ooooooutra coisa! hehe
> >
> > >    Tá bom Rogério, só pq vc falou que eu estou pegando pesado segue um
> > > código prontinho que resolve o que eu entendi do problema.
> > >    Carolina, veja se realmente é isso mesmo.
> >
> > >    (De qualquer forma dê uma lida nos links que te passei pra
> manipulação
> > > com E4X pq isso vai te ajudar um tanto quando lidar com XML.)
> >
> > >    Fico no aguardo pra saber fechou.
> >
> > >    abraços,
> > >    - Luís
> >
> > > ----------------------------<?**xml version="1.0" encoding="utf-8"?>
> > > <s:Application xmlns:fx="http://ns.adobe.com/**mxml/2009<
> http://ns.adobe.com/mxml/2009>
> > > "
> > >               xmlns:s="library://ns.adobe.**com/flex/spark<
> http://ns.adobe.com/flex/spark>
> > > "
> > >               xmlns:mx="library://ns.adobe.**com/flex/mx<
> http://ns.adobe.com/flex/mx>"
> > > minWidth="955" minHeight="600">
> > > <fx:Declarations>
> > > <s:XMLListCollection id="xmllcCombo" source="{xmll.noinicial}"/>
> > > <s:XMLListCollection id="xmllcTree"/>
> > > <fx:XMLList id="xmll">
> >
> > > <content>
> > > <noinicial label="primeiro no">
> > > <nofilho label="filho1">
> > > <noneto label="neto1.1"/>
> > > <noneto label="neto1.2"/>
> > > <noneto label="neto1.3"/>
> > > </nofilho>
> > > </noinicial>
> > > <noinicial label="segundo no">
> >
> > > <nofilho label="filho2.1">
> > > <noneto label="neto2.1"/>
> > > <noneto label="neto2.2"/>
> > > <noneto label="neto2.3"/>
> > > </nofilho>
> > > </noinicial>
> > > </content>
> > > </fx:XMLList>
> > > </fx:Declarations>
> > > <fx:Script>
> > > <![CDATA[
> > >            import mx.collections.**XMLListCollection;
> > >            import spark.events.IndexChangeEvent;
> >
> > >            protected function mudaTree(event:**IndexChangeEvent):void {
> > >                var cb:ComboBox = event.currentTarget as ComboBox;
> > >                var xmltemp:XML = XML(cb.selectedItem).copy();
> >
> > >                xmllcTree.removeAll();
> > >                xmllcTree.source = xmltemp.nofilho;
> > >            }
> >
> > >        ]]>
> > > </fx:Script>
> >
> > > <s:ComboBox x="100" y="100" change="mudaTree(event)"
> > > dataProvider="{xmllcCombo}" prompt="Selecione..." labelField="@label"/>
> > > <mx:Tree id="secoia" x="100" y="200" width="300" height="400"
> > > dataProvider="{xmllcTree}" labelField="@label" />
> > > </s:Application>
> > > ------------------------------**------------------------------**
> > > ------------------------------**-------
> >
> > > Em 21/12/2011 15:59, Carolina Duval escreveu:
> >
> > >  Na vardade, obter o xml externo eu consigo, tanto com httpservices ou
> > >> com URLoader
> > >> e consigo colocar seus valores dentro do combobox, o que não consigo é
> > >> pegar o filtro
> > >> que estou fazendo com o combobox para acessar o nó especifico do xml;
> > >> Exemplo:
> >
> > >> Tenho esse xml a titulo de exemplo
> >
> > >> <content>
> > >>   <noinicial label="primeiro no">
> > >>     <nofilho label="filho1">
> > >>        <noneto label="neto1.1"/>
> > >>        <noneto label="neto1.2"/>
> > >>        <noneto label="neto1.3"/>
> > >>     </nofilho>
> > >>   </noinicial>
> > >>   <noinicia label="segundo no">
> > >>     <nofilho label="filho2.1">
> > >>         <noneto label="neto2.1"/>
> > >>        <noneto label="neto2.2"/>
> > >>        <noneto label="neto2.3"/>
> > >>     </nofilho>
> > >>   </noinicial>
> > >> </content>
> >
> > >> no combobox eu escolho qual o nó inicial,
> > >> ai então carrega a tree com a pasta filho e os nos netos.
> >
> > >> estou carregando o xml assim:
> >
> > >> [Bindable]
> > >>                        private var XMLTree:XML;
> >
> > >>                        private function init():void
> > >>                        {
> > >>                        var request:URLLoader = new URLLoader();
> > >>                        request.addEventListener(**Event.COMPLETE,
> > >> setXML);
> > >>                        request.load(new
> URLRequest("../assets/Content.**
> > >> xml"));
> > >>                        }
> >
> > >>                        public function setXML(e:Event):void
> > >>                        {
> > >>                        XMLTree = new XML(e.target.data);
> >
> > >>                        }
> >
> > >> ai no combo coloco o dataprovider
> > >> <s:dataProvider>
> > >>     <s:XMLListCollection source="{XMLTree.noinicial}"/>
> > >> </s:dataProvider>
> > >>  no proximo combo coloco
> > >> <s:dataProvider>
> > >>     <s:XMLListCollection source="{ID_combo1.**selectedItem.nofilho}"/>
> > >> </s:dataProvider>
> > >> os labelField estão @label ate então OK
> >
> > >> mas na hora de popular a tree com o resultado dos combos é que esta
> > >> com problema
> > >> pois não esta aceitando ID_combo.selectedItem.noneto.
> >
> > >> este é o problema.
> >
> > >> Obrigado Rogerio e Luiz
> >
> > >> On Dec 21, 4:32 pm, Rogerio Gonzalez<rogerio.gonza...@**gmail.com<
> rogerio.gonza...@gmail.com>
> >
> > >> wrote:
> >
> > >>> Poxa Luis,
> >
> > >>> Dá uma folga pra Carolina. A maior parte dos cursos considera E4X
> como
> > >>> "Advanced" hehehe.
> >
> > >>> Sobre a carga de arquivos externos, vc pode usar o httpservice com o
> > >>> resultFormat setado como object.
> > >>> Desta forma, o seu XML externo já vai ser carregado no httpservice e
> vc
> > >>> poderá acessá-lo como um objecto as3 normal, usando o lastResult.
> >
> > >>> Acredito q deva ter algum exemplo na documentacao usando tree com
> object
> > >>> vindo de um httpservice.
> >
> > >>> Agora, se vc realmente quer usar XML no flex, ai o caminho é E4X
> mesmo.
> >
> > >>> Abraços
> >
> > >>> Rogério Gonzalez
> >
> > >>> 2011/12/21 Luis Eduardo<ledua...@suprasis.com.**br<
> ledua...@suprasis.com.br>
> >
> > >>>     Carolina,
> > >>>>    Você está fazendo duas coisas erradas ao mesmo tempo:
> > >>>>    1) Não gastou um tempinho pra estudar direito como funciona E4X
> no
> > >>>> actionscript
> > >>>>    2) Sua pergunta está genérica demais.
> > >>>>    Recomendo tentar de novo primeiro passando pelo item 1 e depois
> pelo
> > >>>> 2.
> > >>>>    Para o item 1, um bom ponto de partida são esses dois links:
> > >>>>    http://livedocs.adobe.com/****flex/3/html/help.html?content=****
> <http://livedocs.adobe.com/**flex/3/html/help.html?content=**>
> > >>>> 13_Working_with_XML_03.html<ht**tp://livedocs.adobe.com/flex/**
> > >>>> 3/html/help.html?content=13_**Working_wi..<
> http://livedocs.adobe.com/flex/3/html/help.html?content=13_Working_wi..>
> > >>>> .>
> > >>>>    http://www.flexao.net/2009/06/****manipulando-xml-no-flex-com-**
> > >>>> **e4x.html<
> http://www.flexao.net/2009/06/**manipulando-xml-no-flex-com-**e4x.html>
> > >>>> <http://www.flexao.
> **net/2009/06/manipulando-xml-**no-flex-com-e4x.html<
> http://www.flexao.net/2009/06/manipulando-xml-no-flex-com-e4x.html>
> >
> > >>>>    Para o item 2, um pouco de código-fonte já ajuda bastante pra
> gente
> > >>>> entender melhor onde foi que vc teve dificuldade.
> > >>>>    É que existem varias maneiras de acessar um xml externo e várias
> > >>>> maneiras de mostrá-lo.
> > >>>>    abraços,
> > >>>>    - Luís Eduardo.
> > >>>> Em 21/12/2011 12:27, Carolina Duval escreveu:
> > >>>>  Alguém sabe como acessar um xml externo e colocar um no especifico
> >
> > >>>>> para mostrar no tree.
> >
> > >>>> --
> > >>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> > >>>> Para enviar uma mensagem, envie um e-mail para
> flexdev@googlegroups.com
> > >>>> Para sair da lista, envie um email em branco para
> flexdev-unsubscribe@
> > >>>> **
> > >>>> googlegroups.com<flexdev-**unsubscr...@googlegroups.com<flexdev-unsubscribe
> @googlegroups.com>
> >
> > >>>> Mais opções estão disponíveis emhttp://groups.google.com/****
> > >>>> group/flexdev <http://groups.google.com/**group/flexdev><
> http://groups.
> > >>>> **google.com/group/flexdev <http://groups.google.com/group/flexdev
> >>
> >
> > > --
> > > Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> > > Para enviar uma mensagem, envie um e-mail para
> flexdev@googlegroups.com
> > > Para sair da lista, envie um email em branco para flexdev-unsubscribe@
> **
> > > googlegroups.com <flexdev-unsubscr...@googlegroups.com>
> > > Mais opções estão disponíveis emhttp://
> groups.google.com/**group/flexdev<http://groups.google.com/group/flexdev>
>
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
> Para sair da lista, envie um email em branco para
> flexdev-unsubscr...@googlegroups.com
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a