Este exemplo simples deve resolver o seu problema:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="myService.send()">
<mx:HTTPService id="myService" url="data.xml" resultFormat="e4x"/>
<mx:Repeater id="rp" dataProvider="{myService.lastResult..furo}">
<mx:Label text="{rp.currentItem}"/>
</mx:Repeater>
</mx:Application>
"data.xml" tem o seguinte conteúdo:
<produtos>
<item>
<cd_referencia>6</cd_referencia>
<ds_referencia>326/1</ds_referencia>
<ds_simbolo>DIN 371</ds_simbolo>
<ds_norma_pt>Rosca Métrica Grossa</ds_norma_pt>
<ds_sigla>M</ds_sigla>
<ds_ponta_pt>Ponta Helicoidal (POT)</ds_ponta_pt>
<ds_imagem>../../fotos/1A-56.jpg</ds_imagem>
<ds_imagem_especificacao>../../fotos/1A.gif</
ds_imagem_especificacao>
<furos>
<furo>Furo 1</furo>
</furos>
<especif_material>
<material>../../images/especif_5.gif</material>
</especif_material>
</item>
</produtos>
1. Observe que o resultFormat é "e4x", ou seja, o XML do ActionScript
2. Você não precisa percorrer todo o caminho dos nós como você fez no
seu exemplo, ou seja isto já resolve "myService.lastResult..furo"
3. Você também não precisa usar esta notação gigante:
parentDocument.sql_vitrineDetalhe.lastResult.produtos.item.furos.furo.getItemAt(rep_furo.currentIndex)
no lugar disto use a propriedade "currentItem" do repeater.
4. Embora para resolver este problema você não precise criar classes
ou coisa do tipo, se você quer realmente conhecer bem o Flex você deve
dar uma olhada em Orientação a Objetos também
[]'s
Beck Novaes
On 4 abr, 16:03, Pat <[EMAIL PROTECTED]> wrote:
> Ontem eu fiquei quase que o dia inteiro nesse problema, e achei que
> tinha resolvido, mas agora descobri um outro probleminha que até sei
> como contornar, mas tah dando um erro.
>
> vamos lah...
>
> essa é a estrutura do meu xml:
> <produtos>
> - <item>
> <cd_referencia>6</cd_referencia>
> <ds_referencia>326/1</ds_referencia>
> <ds_simbolo>DIN 371</ds_simbolo>
> <ds_norma_pt>Rosca Métrica Grossa</ds_norma_pt>
> <ds_sigla>M</ds_sigla>
> <ds_ponta_pt>Ponta Helicoidal (POT)</ds_ponta_pt>
> <ds_imagem>../../fotos/1A-56.jpg</ds_imagem>
> <ds_imagem_especificacao>../../fotos/1A.gif</
> ds_imagem_especificacao>
> - <furos>
> <furo>../../images/menor_passante.gif</furo>
> </furos>
> - <especif_material>
> <material>../../images/especif_5.gif</material>
> </especif_material>
> </item>
> </produtos>
>
> esse é o meu repeater, que pega as tags quem vem dentro da tag
> "furos":
> <mx:Repeater id="rep_furo"
> dataProvider="{parentDocument.sql_vitrineDetalhe.lastResult.produtos.item.furos.furo}">
> <mx:Label text="{'a:'+
> parentDocument.sql_vitrineDetalhe.lastResult.produtos.item.furos.furo.getItemAt(rep_furo.currentIndex)}"
> /
>
> </mx:Repeater>
>
> o problema é que quanto a tag furos tem só um filho, o resultado não
> aparece no meu repeater, pcausa daquele tratamento qeu tenho que fazer
> pra verificar se ArrayCollection...bla bla bla
>
> entaum, fiz no creationcomplete do meu componente uma chamada a função
> init() com a seguinte verificação:
>
> public function init():void{
> if
> (parentDocument.sql_vitrineDetalhe.lastResult.produtos.item.furos.furo
> is ArrayCollection){
> Alert.show('s');
>
> }
> }
>
> mas tenho o seguinte erro:
> TypeError: Error #1009: Cannot access a property or method of a null
> object reference
>
> o que eu faço????
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---