IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flex Discussion :

compter nombre de noeud dans un XML


Sujet :

Flex

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 61
    Points : 34
    Points
    34
    Par défaut compter nombre de noeud dans un XML
    Bonjour,

    j'ai un fichier XML comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?xml version="1.0" encoding="UTF-8" ?> 
    <images>
    	<image url="network.png"> 
    		<titre>NETWORK</titre>
    		<description> network bla bla bla bla....</description>
    	</image>
    	<image url="IMG_jacky.jpg"> 
    		<titre>Chinois</titre>
    		<description>le chinois se déchaîne</description>
    	</image>
    	<image url="bmw.jpg"> 
    		<titre>BMW</titre>
    		<description>le bolide</description>
    	</image>
    </images>
    je charge le fichier XML comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mx:XML id="imagesXML" source="images.xml" />
    J'accède bien à tous le contenu pas de problème.

    MA QUESTION: comment récupérer le nombre de noeud depuis la racine ( dans mon exemple il y a 3 noeuds).

    Merci bcp.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imagesXML.child("image").length()
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    c'est parfait.

    merci sympa.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut,
    tu peux aussi utiliser la notation e4x, en faisant simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imagesXML.image.length();
    En effet, l'expression "imagesXML.image" te retourne un objet de type XMLList. Et XMLList dispose d'une méthode length() permettant de connaître le nombre de noeud enfants (doc):
    http://livedocs.adobe.com/flex/3/lan...l#length%28%29
    Plus d'infos et d'exemple de code sur la lecture XML:
    http://www.flex-tutorial.fr/2008/09/...ctionscript-3/

    Fabien

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    je viens de tester et en effet cela fonction également!

    j'avais au début essayé comme ça mais je m'étais trompé j'avais mis imagesXML.images.length() qui me renvoyait 1.....

    Là je bloque sur un autre problème. je veux maintenant donner l'url du fichier xml en paramètre quand j'apelle mon .swf final.

  6. #6
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut
    Citation Envoyé par geek21 Voir le message
    je viens de tester et en effet cela fonction également!

    j'avais au début essayé comme ça mais je m'étais trompé j'avais mis imagesXML.images.length() qui me renvoyait 1.....

    Là je bloque sur un autre problème. je veux maintenant donner l'url du fichier xml en paramètre quand j'apelle mon .swf final.
    Je m'y connais pas trop mais je peux juste te donner une piste. Dans le HTML qui appelle le SWF tu as des paramètres que tu peux passer pour que le SWF puisse le lire. Dans ton application trouve le moyens de capturer ces paramètres qui sont externe.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    Bonjour,


    j'ai essayé ta méthode mais je m'y perds car il semblerait qu'il faille aussi donner ces paramètre au javascript et là je ne m'y retrouve plus...

    PS: est-il raisonnable d'envisager de faire des anim en flex qui seront intégrées dans une page html et dont le contenu se chargera dynamiquement via des fichier XML (qui eux seront générés par des fonctions php et que j'appelerai juste avant d'intégrer le .swf) ? Comment fonctionne le swf, il charge le fichier des lors que la page est chargée? Comment faire pour savoir que le swf a chargé le fichier xml pour que je puisse supprimer ce fichier xml?


    Merci

  8. #8
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut
    Citation Envoyé par geek21 Voir le message
    Bonjour,


    j'ai essayé ta méthode mais je m'y perds car il semblerait qu'il faille aussi donner ces paramètre au javascript et là je ne m'y retrouve plus...

    PS: est-il raisonnable d'envisager de faire des anim en flex qui seront intégrées dans une page html et dont le contenu se chargera dynamiquement via des fichier XML (qui eux seront générés par des fonctions php et que j'appelerai juste avant d'intégrer le .swf) ? Comment fonctionne le swf, il charge le fichier des lors que la page est chargée? Comment faire pour savoir que le swf a chargé le fichier xml pour que je puisse supprimer ce fichier xml?


    Merci
    Personnellement, j'ai développe un outil pour manager Mysql. C'est PHP qui génère les réponses au format XML. Le demandeur est le SWF. Le fichier HTML hote, c'est à dire celui qui accueille le SWF ne bouge pas. Tu peux appeler un XML via le SWF. Tu peux décider à quel moment il va charger le XML.

    Regarde ce code dans ce sujet :
    http://www.developpez.net/forums/d78...e-httpservice/

    Cherche dans le code "creationComplete" et remonte la ficelle tu vas comprendre comment tu peux te débrouiller.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 43
    Points : 35
    Points
    35
    Par défaut
    Tu peux passer des parametres à ton SWF dans ton HTML en utilisant FlashVars: dans la balise object avec param:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <param name="FlashVars" value="var1=valeur1&var2=valeur2" />
    sans oublier dans embed l'attribut:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <embed src="..." FlashVars="var1=valeur1&var2=valeur2" ...
    Et dans ton script AS: tu recuperes ces valeurs ainsi passé avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var var1 = Application.application.parameters.var1;
    var var2 = Application.application.parameters.var2;

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    zwan.bourg

    Merci pour ton explication claire.

    berceker united

    Tu me préconise quoi? d'utiliser un fichier XML présent physiquement sur le disque et que je met à jour à chaque besoin via un script php, ou bien de donner en paramètre une chaine de caractère qui constitue le code XML, ou bien de faire un httprequest et appeler un script php qui me retourne le flux XML ?

    Merci

  11. #11
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut
    Citation Envoyé par geek21 Voir le message
    zwan.bourg

    Merci pour ton explication claire.

    berceker united

    Tu me préconise quoi? d'utiliser un fichier XML présent physiquement sur le disque et que je met à jour à chaque besoin via un script php, ou bien de donner en paramètre une chaine de caractère qui constitue le code XML, ou bien de faire un httprequest et appeler un script php qui me retourne le flux XML ?

    Merci
    Tout dépend du ton projet. Si le fichier XML n'a pas de réelle raison d'être dynamique à chaque fois, tu peux demander à PHP de le générer et poser le fichier sur le serveur et le SWF charge toujours le même XML. L'avantage c'est que ça sera très rapide.
    Si tu envois une requête pour demander à chaque fois à PHP de générer le XML c'est possible mais ça prendre un peut plus de temps. En soit, ça sera toujours la même requêtes qui sera envoyé au serveur web mais deux manière d'avoir le XML.
    Le passer en paramètre me semble pas très propre comme procédé. Tu peux éventuellement passer le lien à aller chercher.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    Bien évidemment je parlais de passer l'url du fichier! Désolé je me suis mal fais comprendre.

    Imagine que mon swf et appelé dans plusieurs pages. Chaque page a son propre contenu pour le diaporama. Si ces deux pages sont appelées en même temps par deux navigateurs ( ce qui n'est pas impossible car c'est un site avec 30 000 visites par jour), il ne risque pas d'y avoir de conflit? un swf aura besoin d'un certain contenu pour le XML et l'autre swf un autre contenu pour ce même XML. Cela ne serait pas mieux d'envoyer une requêtes via php et recevoir le flux XML au lieu de piocher dans un fichier dont se servira le même swf dans plusieurs pages mais à chaque fois "rafraichi" (puisque contenu différent du xml selon la page).


    Ai-je été clair ou non? J'espère que oui!

  13. #13
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut
    Citation Envoyé par geek21 Voir le message
    Bien évidemment je parlais de passer l'url du fichier! Désolé je me suis mal fais comprendre.

    Imagine que mon swf et appelé dans plusieurs pages. Chaque page a son propre contenu pour le diaporama. Si ces deux pages sont appelées en même temps par deux navigateurs ( ce qui n'est pas impossible car c'est un site avec 30 000 visites par jour), il ne risque pas d'y avoir de conflit? un swf aura besoin d'un certain contenu pour le XML et l'autre swf un autre contenu pour ce même XML. Cela ne serait pas mieux d'envoyer une requêtes via php et recevoir le flux XML au lieu de piocher dans un fichier dont se servira le même swf dans plusieurs pages mais à chaque fois "rafraichi" (puisque contenu différent du xml selon la page).
    Ai-je été clair ou non? J'espère que oui!
    Alors si je comprend bien. Ton SWF est appelé par plusieurs pages donc chaque page à théoriquement un XML ?
    Normalement il y a pas de conflit si deux personnes appellent le même SWF pour deux pages différentes car c'est le paramètres qui va faire pointer le bon fichier. Si j'ai tout compris parce que je perçois pas tout de ton projet.

    Pourquoi tu ne fais pas un seul fichier HTML avec un seul appelle du SWF et c'est dans le SWF que tu sélectionnes le bon XML généré par le PHP. Ceci évite de multiple fichier qui encapsule le SWF. A moins que tu es besoin de gérer certaine donnée en dehors du SWF.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    Tu as compris 50% lol.

    Je vais te faire un exemple:

    Page 1: appel du diapo.swf avec le paramètre urlXML=images.xml

    Page 2: appel du diapo.swf avec le paramètre urlXML=images.xml

    (donc appel du même fichier images.xml).
    Cependant selon que l'on soit dans page 1 ou page 2 le contenu du fichier images.xml régénéré par PHP sera différent! (par exemple page 1 pour les bisounours et page 2 pour barbie).

    Séparément ca pose pas de problème, mais sur un site à très gros trafic, que se passe-t-il si ces deux pages sont appelées en même temps? le images.XML va être "disputé" entre page 1 et page 2.

    C'est pour cela que je te demande si faire une requête qui retourne le flux xml en chaine n'est pas plus judicieux?

    En tout cas merci de raisonner avec moi, sympa.

  15. #15
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut
    Citation Envoyé par geek21 Voir le message
    Tu as compris 50% lol.

    Je vais te faire un exemple:

    Page 1: appel du diapo.swf avec le paramètre urlXML=images.xml

    Page 2: appel du diapo.swf avec le paramètre urlXML=images.xml

    (donc appel du même fichier images.xml).
    Cependant selon que l'on soit dans page 1 ou page 2 le contenu du fichier images.xml régénéré par PHP sera différent! (par exemple page 1 pour les bisounours et page 2 pour barbie).

    Séparément ca pose pas de problème, mais sur un site à très gros trafic, que se passe-t-il si ces deux pages sont appelées en même temps? le images.XML va être "disputé" entre page 1 et page 2.

    C'est pour cela que je te demande si faire une requête qui retourne le flux xml en chaine n'est pas plus judicieux?

    En tout cas merci de raisonner avec moi, sympa.
    Non pas de problème, les serveurs web gère les appelles de fichier simultané parfaitement. Le premier arrivé, le premier servie.
    Bisounours, Barbie ? Attend, tu nous fait pas un site de vente de ces trucs la quand même
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 43
    Points : 35
    Points
    35
    Par défaut
    Pourquoi ne pas faire un XML spécifique à chaque page (imagePage1.xml, imagePage2.xml,...)? Et même s'il est généré, ton XML, on peut passer des paramètres au script qui le genère. Comme ça tu lui passes les paramètresen fonction des pages dans lesquels tu te situes.

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Il ne FAUT PAS utiliser le même fichier car effectivement rien ne garantie son contenu d'après ce que tu expliques.

    Si ce fichier n'est utilisé que par les applications Flash il me semble que le plus judicieux est de le lire lors du chargement de l'application au travers d'une requête. Dans ce cas il n'est peut être pas nécessaire de passer par le stade "fichier", pourquoi ne pas envoyer directement les données XML ??
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  18. #18
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut
    Je crois qu'il y a un malentendu dans l'histoire.
    L'idée que propose zwan.bourg c'est que les fichiers XML sont déjà générés à l'avance. Chaque page est associé à ce XML. Même si il y a 36 personnes qui consulte le même fichier il y a pas de soucie.
    Il faut pas oublier que le SWF est sur le poste client donc il y a pas de problème si 36 personnes appelle le même fichier.
    La question est de savoir si chaque fichier XML doit être full dynamique ou ponctuellement dynamique ?
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    berceker on est d'accord !! Je ne répondais pas à zwan.bourg qui propose bien d'utiliser un fichier par swf mais à l'idée initiale de remplacer le contenu d'un fichier unique selon le module utilisé.
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  20. #20
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut
    En faite, j'avais bien compris ton raisonnement et je suis d'accord avec toi. C'est juste que je voulais m'assurer que jylaxx avait bien compris la notion client serveur avec Flex, PHP et le XML.
    En faite cette phrase m'a troublé "Il ne FAUT PAS utiliser le même fichier car effectivement rien ne garantie son contenu d'après ce que tu expliques."
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Compter le nombre de section dans un xml ?
    Par bubu139 dans le forum C#
    Réponses: 9
    Dernier message: 17/12/2007, 21h24
  2. "comptage" de noeuds dans un xml
    Par lieto dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 28/06/2006, 10h18
  3. [MySQL] compter nombre de table dans une base
    Par stephan55 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 16/06/2006, 18h31
  4. [VBA-E]Compter nombre de fichier dans un dossier
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/05/2006, 14h36
  5. Compter nombre de mots dans une chaîne.
    Par xVINCEx dans le forum C++
    Réponses: 22
    Dernier message: 24/11/2004, 13h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo