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

C# Discussion :

Affichage de XML


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 45
    Par défaut Affichage de XML
    Salut, mon code permet d'afficher d'un fichier xml une question et ses réponses possibles, dans mon code les réponses sont fixés à 3 j'aimerais bien les rendre variable par exemple question 1 avec 5 réponses et question 2 avec 3 réponses voila mon code:
    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
     
     
     while (iter.MoveNext())
                        {
     
                            string v1 = iter.Current.SelectSingleNode("quest").Value;
                            string v2 = iter.Current.SelectSingleNode("prop1").Value;
                            string v3 = iter.Current.SelectSingleNode("prop2").Value;
                            string v4 = iter.Current.SelectSingleNode("prop3").Value;
                            string v5 = iter.Current.SelectSingleNode("rep").Value;//indice réponse exacte
                            string s = Environment.NewLine + v1 + Environment.NewLine + Environment.NewLine + v2 + Environment.NewLine + Environment.NewLine + v3 + Environment.NewLine + Environment.NewLine + v4 + Environment.NewLine;
                            liste.Add(s);
                            indicerep.Add(v5);
                            textBox1.Text = "Cliquez sur commencer pour voir les questions" + Environment.NewLine + "La durée de l'examen est : 30 minutes" + Environment.NewLine + "Le nombre de questions est :" + liste.Count;
     
                        }
     
                }
    voila mon fichier 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
     
    <QCM>
      <questions >
        <quest>Quelle est la couleur de la mer ?</quest>
        <prop1>1-rouge</prop1>
        <prop2>2-bleu</prop2>
        <prop3>3-noir</prop3>
        <rep>2</rep>
      </questions>
     
      <questions >
        <quest>Quelle est la capitale de la france ?</quest>
        <prop1>1-london</prop1>
        <prop2>2-bruxelle</prop2>
        <prop3>3-paris</prop3>
        <rep>3</rep>
      </questions>
    </QCM>
    J'ai essayer de faire quelque changement avec rien ne s'affiche:
    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
     
    while (iter.MoveNext())
                        {
                            // On récupère l'info
                            string q = iter.Current.SelectSingleNode("quest").Value;
                            string s = Environment.NewLine + q;
                            for (int i = 0; i < iter.Count-1; i++)
                            {
     
                                string prop = "prop" + (i + 1);
                                string v = iter.Current.SelectSingleNode(prop).Value;
                                s += Environment.NewLine + v ;
     
                            }
                            string rep = iter.Current.SelectSingleNode("rep").Value;//indice réponse exacte
                            liste.Add(s);
                            indicerep.Add(rep);
                            textBox1.Text = "Cliquez sur commencer pour voir les questions" + Environment.NewLine + "La durée de l'examen est : 30 minutes" + Environment.NewLine + "Le nombre de questions est :" + liste.Count ;
     
                        }
    Merci d'avance

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Comme ça je ne vois pas trop ce que l'on peut dire car il y a pas mal d'inconnue. On ne sait pas dans quoi tu veux afficher par exemple, en tout cas je ne vois pas trop avec le code donné.

    Maintenant si c'est juste de l'affichage, j'aurai tendance à afficher le XML avec une feuille XSL. C'est bien plus souple. Un WebBrowser permet d'afficher ça simplement si on lui donne le XML et que ce dernier à un lien sur une feuille XSL. Suivant comment on procède il faudrait scinder le fichier en deux par contre, un avec les questions et un avec les réponses aux questions.

    Sinon revoit un peu ton XML si c'est possible. Quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      <question>
        <texte>Quelle est la couleur de la mer ?</texte>
        <propositions>
            <proposition>1-rouge</proposition>
            <proposition>2-bleu</proposition>
            <proposition>3-noir</proposition>
        </propositions>
        <reponse>2</reponse>
      </question>
    me semble plus naturel à manipuler par exemple. Mais c'est un autre débat et hors sujet au passage.

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 45
    Par défaut
    D'abord merci pour ta réponse, mais c'est pas là le problème, tu vois que le nombre des réponses de la question 1 est égale à 3 et si la question 2 a le même nombre de réponses (3) le traitement sa sera normale, mais pour moi le nombre de réponses et variable une fois 3 et d'autre fois 5 donc il faudra la mettre dans une boucle ce que je pense bien sur
    ça pour exemple avec 3 reponses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        <texte>Quelle est la couleur de la mer ?</texte>
        <propositions>
            <proposition>1-rouge</proposition>
            <proposition>2-bleu</proposition>
            <proposition>3-noir</proposition>
        </propositions>
        <reponse>2</reponse>
    et ça pour l'exemple de 5 réponses ou se propose le problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        <texte>Quelle est la couleur de la mer ?</texte>
        <propositions>
            <proposition>1-rouge</proposition>
            <proposition>2-bleu</proposition>
            <proposition>3-noir</proposition>
            <proposition>4xxxxx</proposition>
           <proposition>5-zzzz</proposition>
        </propositions>
        <reponse>2</reponse>
    Merci encore

  4. #4
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Je ne vois pas trop où est le problème, pour chaque question tu as une liste de réponses possible. Il suffit de gérer ça de la même manière en code.

    Tu auras une liste de questions, chaque question possédant une liste de réponses, une des réponses étant la bonne. Les listes étant alors des collections (List<T> par exemple). Ensuite à toi de voir comment tu veux afficher tout ça. Arrivé à ce stade le nombre de réponses possibles importe peu.

    Si tu ne sais pas ce qu'est une collection, regarde le cours C# du site ou bien passe par google.

  5. #5
    Inactif
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Algérie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 59
    Par défaut Si j'ai compris
    Bonsoir !
    si j'ai bien compris le problème, ce qui te gène c'est d'avoir plusieurs cas de réponses possibles (le nombre est variable). et du coups tu veux que ton code puisse être générique .... si c'est cela le problème je te conseille de travailler avec du linq to xml de cette façon tu accèdes a ton fichier qui sera référencé par uun XDocument pour que par la suite et en fournissant le path (chemin) d'accès à l'élément XElement que tu veux (entre autre c'est la valeur de la question) tu pourras récupérer le noeud contenant toutes les réponses à cette même question (et ce qlq soit leur nombre). il te restera plus qu'à boucler avec un foreach (car c'est IEnumerable) et c'est joué.
    j'espere avoir saisi et répondu (du moins montré le chemin à suivre) si besoin y ai je suis la ....
    n'oublie pas de faire l'effort pour monter en compétence sur la partie linq to xml ... on a rien sans rien

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 45
    Par défaut
    Citation Envoyé par buxus Voir le message
    Bonsoir !
    si j'ai bien compris le problème, ce qui te gène c'est d'avoir plusieurs cas de réponses possibles (le nombre est variable). et du coups tu veux que ton code puisse être générique .... si c'est cela le problème je te conseille de travailler avec du linq to xml de cette façon tu accèdes a ton fichier qui sera référencé par uun XDocument pour que par la suite et en fournissant le path (chemin) d'accès à l'élément XElement que tu veux (entre autre c'est la valeur de la question) tu pourras récupérer le noeud contenant toutes les réponses à cette même question (et ce qlq soit leur nombre). il te restera plus qu'à boucler avec un foreach (car c'est IEnumerable) et c'est joué.
    j'espere avoir saisi et répondu (du moins montré le chemin à suivre) si besoin y ai je suis la ....
    n'oublie pas de faire l'effort pour monter en compétence sur la partie linq to xml ... on a rien sans rien
    Merci c'est ce que je cherche!!

Discussions similaires

  1. JSP et XML: comment, après affichage de XML lancer une popup?
    Par Mistilli dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 12/06/2007, 16h22
  2. JTextPane et affichage de XML
    Par fdeMontmagny dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 01/04/2007, 21h46
  3. JTextPane et affichage de XML
    Par fdeMontmagny dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 30/03/2007, 20h04
  4. Affichage sources XML
    Par k0ntakt dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 17/01/2005, 17h06
  5. Réponses: 13
    Dernier message: 14/06/2004, 15h35

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