2009-10-09 5 views
1

Comment puis-je obtenir un arbre Flex pour n'afficher que des nœuds XML spécifiques?Flex TreeDataDescriptor

Un exemple de données XML est ci-dessous. Seuls les éléments Grouper et Product doivent être affichés en tant que nœuds de branche et de feuille respectivement; les éléments Name ne doivent pas être affichés. Je ne peux pas utiliser XSL ou e4x pour modifier le XML car le texte des éléments de nom est utilisé comme étiquette pour les nœuds de l'arborescence Grouper et Product. En outre, je ne peux pas déplacer l'élément Name pour qu'il soit un attribut car il doit inclure une section CDATA.

Il semble que l'utilisation d'un TreeDataDescriptor personnalisé soit la voie à suivre, mais je ne trouve aucun exemple d'utilisation de XML.

Un conseil apprécié.

Merci,

Al H.

<Grouper Type="ProductHeading" Id="" icon="drugIcon"> 
     <Name>ASPAV</Name> 
     <Product Id="1002081" icon="genericIcon"> 
      <Name>ASPAV dispersible tablet</Name> 
     </Product> 
</Grouper> 

<Grouper Type="ProductHeading" Id="" icon="drugIcon"> 
     <Name>ASPELLIN</Name> 

     <Product Id="1005755" icon="genericIcon"> 
      <Name>ASPELLIN liniment</Name> 
     </Product> 
</Grouper> 

Répondre

0

Commencez par créer un descripteur personnalisé qui étend la classe DefaultDataDescriptor, qui a un support XML de la boîte. Je commencerais en remplaçant les méthodes suivantes:

isBranch getChildren hasChildren

+0

Il est primordial que je le suis coincé sur. Par exemple, à quoi ressemblerait ma méthode getChildren? – Alistair77

0

finalement trouvé la solution grâce à grand article de David Arno (titre est « Comment filtrer tous les nœuds d'un composant d'arbre Flex »).

On dirait que beaucoup de gens ont posé cette question, mais c'est la seule solution que j'ai trouvé - et il fonctionne très bien;)