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";
               xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://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>
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>









    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=**
13_Working_with_XML_03.html<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>
    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>
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

Responder a