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 :

Transformer un .xml en Objet XML


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Par défaut [Résolu]Transformer un .xml en Objet XML
    Bonjour,

    Je suis actuellement en train de développer un questionnaire intranet en flex.
    Mon but est de stocker la structure dans un fichier XML et de parser ces informations avec Flex.

    J'ai déjà tout développé à partir d'un objet Flex de type XML :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    private static var tablesService:XML = 
    <quizz>
          <topic id="1" topicName="premier sujet">
    		<title>Premier sujet</title>
    		<page pageName="page1">
    			<question name="Q1" type="radiobutton">
    				<label>Lequel est le bon ?</label>
    				<button answerValue="1">oui</button>
    				<button answerValue="0">non</button>
    			</question>
    			<question name="Q2" type="checkbox">
    				<label>Lesquels sont bons ?</label>
    				<button answerValue="1">A</button>
    				<button answerValue="1">B</button>
    				<button answerValue="0">C</button>
    			</question>
    			<question name="Q3" type="orderQuestion">
    				<label>Dans quel ordre faut-il procéder ?</label>
    				<button answerValue="2">A</button>
    				<button answerValue="1">B</button>
    				<button answerValue="3">C</button>
    			</question>
    		</page>
    		<page pageName="page2">
    			<question name="Q4" type="openQuestion">
    				<label>Disserter sur le sujet</label>
    				<answerValue>La vraie réponse est 42</answerValue>
    			</question>
    		</page>
    	</topic>
    </quizz>
    Maintenant que cela fonctionne, je voudrais tirer ces informations d'un fichier xml en local. Mais je ne sais pas trop comment faire pour convertir le .xml en l'objet XML.

    J'ai essayé avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mx:XML id="myXMLFile" source="data/qcm.xml" />
    et avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mx:HTTPService id="myXMLFile" url="data/qcm.xml" useProxy="false"  result="genererPage(event)"/>
    Mais les deux me renvoie la même erreur :
    An internal build error has occurred. Right-Click for more information
    Evidement j'ai tenté le clic droit/More information mais ça m'emmène sur une page web avec une description génériques des erreurs.
    http://learn.adobe.com/wiki/display/...ompiler+Errors
    Après quand j'ai tenté de voir à travers l' "Error log" d'Eclipse, j'ai :
    Uncaught Exception in Compiler
    Dont le détails est :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    java.lang.ArrayIndexOutOfBoundsException: -1
    at java.util.ArrayList.get(Unknown Source)
    at flex2.compiler.mxml.dom.Scanner.getNextToken(Scanner.java:170)
    at flex2.compiler.mxml.Parser.jj_consume_token(Parser.java:1147)
    at flex2.compiler.mxml.Parser.parseAnonymousObject(Parser.java:593)
    at flex2.compiler.mxml.analyzer.SyntaxAnalyzer.parseExternalXML(SyntaxAnalyzer.java:430)
    at flex2.compiler.mxml.analyzer.SyntaxAnalyzer.analyze(SyntaxAnalyzer.java:230)
    at flex2.compiler.mxml.dom.XMLNode.analyze(XMLNode.java:51)
    at flex2.compiler.mxml.dom.AnalyzerAdapter.traverse(AnalyzerAdapter.java:172)
    at flex2.compiler.mxml.dom.AnalyzerAdapter.analyze(AnalyzerAdapter.java:164)
    at flex2.compiler.mxml.analyzer.SyntaxAnalyzer.analyze(SyntaxAnalyzer.java:55)
    at flex2.compiler.mxml.dom.Node.analyze(Node.java:47)
    at flex2.compiler.mxml.InterfaceCompiler.parse1(InterfaceCompiler.java:222)
    at flex2.compiler.mxml.Compiler.parse1(Compiler.java:95)
    at flex2.compiler.API.parse1(API.java:2315)
    at flex2.compiler.API.parse1(API.java:2268)
    at flex2.compiler.API.batch2(API.java:369)
    at flex2.compiler.API.batch(API.java:1117)
    at flex2.compiler.API.compile(API.java:1290)
    at flex2.tools.oem.Application.compile(Application.java:1077)
    at flex2.tools.oem.Application.compile(Application.java:803)
    at flex2.tools.flexbuilder.BuilderApplication.compile(BuilderApplication.java:354)
    at com.adobe.flexbuilder.multisdk.compiler.internal.ASApplicationBuilder$MyBuilder.mybuild(ASApplicationBuilder.java:271)
    at com.adobe.flexbuilder.multisdk.compiler.internal.ASApplicationBuilder.build(ASApplicationBuilder.java:122)
    at com.adobe.flexbuilder.multisdk.compiler.internal.ASBuilder.build(ASBuilder.java:139)
    at com.adobe.flexbuilder.multisdk.compiler.internal.ASItemBuilder.build(ASItemBuilder.java:73)
    at com.adobe.flexbuilder.project.compiler.internal.FlexProjectBuilder.buildItem(Unknown Source)
    at com.adobe.flexbuilder.project.compiler.internal.FlexProjectBuilder.build(Unknown Source)
    at com.adobe.flexbuilder.project.compiler.internal.FlexIncrementalBuilder.build(Unknown Source)
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:633)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:170)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:201)
    at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:253)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:256)
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:309)
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:341)
    at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:140)
    at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:238)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
    Voilà, je suis certain que ca viens de la ligne d'import car quand je la retire, l'erreur disparaît.

    Si quelqu'un a déjà eu ce problème ou si vous avez une autre solution pour importer un .xml en flex, je suis toute ouïe.

    Merci par avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Février 2010
    Messages : 61
    Par défaut
    Hello,

    J'ai pas complètement lu le code, pour cause de temps...
    Mais cette adresse m'avait aidé lorsque j'avais eu ce problème..

    http://9mmedia.com/blog/?p=165

    En espérant que celà t'aidera

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Par défaut
    Merci pour le site mais je ne pense pas que mon cas correspond aux erreurs citées.

    J'ai réussi à faire disparaître l'erreur en plaçant mon fichier sur un serveur tomcat et en réutilisant la ligne HTTPService posté ci-dessus (en changeant l'URL bien sûr).

    Cependant je ne sais toujours pas comment obtenir un objet Flex XML à partir de mon objet Flex HTTPService.

    Si quelqu'un connaît, merci de poster, ...

  4. #4
    Membre expérimenté Avatar de samy2525
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 259
    Par défaut
    Bonjour je ne sais pas si c'est ce que tu cherche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    /**
     * ResultHandler fonction qui recoit le result depuis le serveur 
     */ 
    private function myResultHandler(anEvent : ResultEvent) : void
    {
    	var xmlData:XML = XML(anEvent.result);
    }
    j'espere que ça va t'aider

    bon courage

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Par défaut
    Bon c'est bon j'ai trouvé. En fait, je me compliquais la vie à utiliser Apache. Il suffisait de placer mon fichiers XML au même endroit que les sources. Pour une raison obscure, Flex refusait d'accéder à mon dossier.

    Après celà l'utilisation de la balise <mx:XML> ou même [Embedded] fonctionne parfaitement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème transformation xml en Objet via xslt
    Par lavoyech dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 24/06/2015, 17h16
  2. Réponses: 5
    Dernier message: 05/04/2008, 13h51
  3. Transformer un très gros fichier XML avec XSL
    Par wozzz dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 30/05/2006, 10h57
  4. [XML] [POO] [Classe/Objet]xml
    Par 2xyo dans le forum Langage
    Réponses: 19
    Dernier message: 21/03/2006, 19h00
  5. [XSLT] Transformer un String contenant du xml
    Par VinceFromBcn dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 07/07/2004, 12h42

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