Fiz a seguinte mudança no xml:

<root id="root" name="Root" >
        <child id="x" name="X" parentId="root">
                <child id="y" name="Y" parentId="x">
                </child>
        </child>
        <child id="z" name="Z" parentId="root">
        </child>
  </root>

Melhorou, mas está mostrando como pasta apenas Root e X, assim:

Root (pasta)
    X (pasta)
        Y (arquivo)
    Z (arquivo)

Esse é a minah função:
private function treeLabel(item:Object):String {


                var node:XML = XML(item);
                if( node.localName() == "root" ) {
                        return node.attribute("name");
                } else if( node.localName() == "child" ) {
                        return node.attribute("name");
                } else {
                        return item.toString();
                }


            }

Estranho.




On 29 jan, 14:12, Júlio César Ködel <jcko...@gmail.com> wrote:
> Veja bem: você JÁ adicionou os nós na Tree (quando setou o DataProvider).
>
> O labelFunction apenas te dá a oportunidade de AJUSTAR o label sendo exibido.
>
> Para que os nós indesejados não sejam adicionados, você tem que
> tratá-los antes de adicioná-los à tree via dataProvider, então, só
> fazer uma função que extraia os dados desejados em um XML parecido
> com:
>
> <node label="Texto" icon="NomeVarClassDoIcone">
>   <node  label="Texto" icon="NomeVarClassDoIcone"/>
> </node>
>
> sendo icon opcional
>
> 2010/1/29 Vinicius <vinu...@gmail.com>:
>
>
>
>
>
> > Não tem como apenas pular?
>
> > On 29 jan, 13:48, Júlio César Ködel <jcko...@gmail.com> wrote:
> >> Poisé... não vai dar não =)
>
> >> Cada tag do XML é um nó da árvore... e você não quer todos os nós, só
> >> dois deles.
>
> >> Vai ter que traduzir o XML para transformá-lo para o formato correto
> >> antes de carregar na tree =\
>
> >> 2010/1/29 Vinicius <vinu...@gmail.com>:
>
> >> > Quero saber o q tenho q mudar para obter a resposta q eu quero.
> >> > :)
>
> >> > On 29 jan, 13:43, Vinicius <vinu...@gmail.com> wrote:
> >> >> Olá Júlio,
>
> >> >> Não está não, ele faz isso:
>
> >> >> root
> >> >>     id
> >> >>     name
> >> >>     child
> >> >>         id
> >> >>         name
> >> >>         parent
> >> >>         child
> >> >>             id
> >> >>             name
> >> >>             parent
>
> >> >> Eu quero isso:
>
> >> >> Root
> >> >>     X
> >> >>         Y
>
> >> >> Vinicius.
>
> >> >> On 29 jan, 13:39, Júlio César Ködel <jcko...@gmail.com> wrote:
>
> >> >> > Uai... ele tá fazendo exatamente o que você pediu: return node.name()
>
> >> >> > node.text() se não me engano retonaria o conteúdo da tag (X e Y).
>
> >> >> > 2010/1/29 Vinicius <vinu...@gmail.com>:
>
> >> >> > > Caros,
>
> >> >> > > Estou querendo carregar um XML em uma árvore do Flex.
>
> >> >> > > O meu XML é o seguinte:
>
> >> >> > > <root>
> >> >> > >    <id>root</id>
> >> >> > >    <name>Root</name>
> >> >> > >    <child>
> >> >> > >        <id>x</id>
> >> >> > >        <name>X</name>
> >> >> > >        <parent>
> >> >> > >                <id>root</id>
> >> >> > >                <name>Root</name>
> >> >> > >        </parent>
> >> >> > >        <child>
> >> >> > >                <id>y</id>
> >> >> > >                <name>Y</name>
> >> >> > >                <parent>
> >> >> > >                        <id>x</id>
> >> >> > >                        <name>X</name>
> >> >> > >                </parent>
> >> >> > >        </child>
> >> >> > >    </child>
> >> >> > >  </root>
>
> >> >> > > Gostaria que a árvore fosse assim:
>
> >> >> > > Root
> >> >> > >    X
> >> >> > >        Y
>
> >> >> > > Estou fazendo dessa forma:
>
> >> >> > > <mx:Tree id="tree" top="72" left="50" dataProvider="{companyData}"
> >> >> > >        labelFunction="treeLabel"
> >> >> > >         height="224" width="179"/>
>
> >> >> > > e o treeLabel é:
>
> >> >> > > private function treeLabel(item:Object):String {
> >> >> > >                var node:XML = XML(item);
> >> >> > >                if( node.localName() == "root" ) {
> >> >> > >                        return node..name();
> >> >> > >                } else if( node.localName() == "child" ) {
> >> >> > >                        return node.name();
> >> >> > >                } else if (node.localName() == "id" || 
> >> >> > > node.localName()
> >> >> > > == "name" || node.localName() == "parent") {
> >> >> > >                        return node.name();
> >> >> > >                } else {
> >> >> > >                        return null;
> >> >> > >                }
>
> >> >> > >            }
>
> >> >> > > Dessa forma ele gera uma árvore com todos os itens do XML, ficando
> >> >> > > assim:
> >> >> > > root
> >> >> > >    id
> >> >> > >    name
> >> >> > >    child
> >> >> > >        id
> >> >> > >        name
> >> >> > >        parent
> >> >> > >        child
> >> >> > >            id
> >> >> > >            name
> >> >> > >            parent
>
> >> >> > > E não usa o value e sim o próprio nome da tag.
>
> >> >> > > Grato,
> >> >> > > Vinicius.
>
> >> >> > > --
> >> >> > > 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 
> >> >> > > emhttp://groups.google.com/group/flexdev
>
> >> >> > --
> >> >> > []
> >> >> > Júlio César Ködel G.
>
> >> > --
> >> > 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 emhttp://groups.google.com/group/flexdev
>
> >> --
> >> []
> >> Júlio César Ködel G.
>
> > --
> > 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 emhttp://groups.google.com/group/flexdev
>
> --
> []
> Júlio César Ködel G.

-- 
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