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 :

Problème de Linq et XML


Sujet :

C#

Vue hybride

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

    Informations forums :
    Inscription : Juin 2013
    Messages : 64
    Par défaut Problème de Linq et XML
    Bonjour,

    J'ai deux fichiers XML, <Universités> et <Académie>, la structure de <Universités> est
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <Universite>
    		<Academie>ACAU01</Academie>
    		<Code>UNIVP1</Code>
    		<Nom>Université Paris 1 Panthéon-Sorbonne</Nom>
    		<Adresse>Centre Michelet. 3, rue Michelet 75006 Paris</Adresse>
    		<SiteInternet>http://www.univ-paris1.fr</SiteInternet>
    		<NomPresident>XXXXXXXX</NomPresident>
    		<Telephone>0000000000</Telephone>
    	</Universite>
    dans le code C#, j'ai utilisé Linq pour récupérer ces données et insérer dans une liste. En plus, j'ai deux classes qui sont nommées université et académie.
    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
     
                    string nom = elt.Element("Nom").Value;
                    string adresse = elt.Element("Adresse").Value;
                    string siteInternet = elt.Element("SiteInternet").Value;
                    string nomPresident = elt.Element("NomPresident").Value;
                    string academie = elt.Element("Academie").Value;
     
                    Universite uni = new Universite();
     
                    uni.Nom = nom;
                    uni.Adresse = adresse;
                    uni.SiteInternet = siteInternet;
                    uni.NomPresident = nomPresident;
                    //uni.Academie = academie;
     
                    if (!(elt.Element("Telephone").Value.Equals(string.Empty)))
                    {
                        long tel = long.Parse(elt.Element("Telephone").Value);
                        uni.Telephone = tel;
                    }               
     
                    maListeUniversite.Add(uni);
                }
    Pour la ligne de code en commentaire, comment je peux faire une transtypage(cast) pour ajouter cet attribut?

    meci bp

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Si j'ai bien compris ton membre "academie" de la classe université est de type "Academie", une classe que tu as créée, c'est bien ça?

    Si c'est bien le cas alors il ne faut pas passer par du transtypage mais plutôt par un constructeur de "Academie" qui a comme constructeur une chaîne de caractères.

    Après, il faudrait que tu nous en dises plus sur cette classe "Academie"...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 64
    Par défaut
    Citation Envoyé par Ph_Gr Voir le message
    Bonjour,
    Si j'ai bien compris ton membre "academie" de la classe université est de type "Academie", une classe que tu as créée, c'est bien ça?

    Si c'est bien le cas alors il ne faut pas passer par du transtypage mais plutôt par un constructeur de "Academie" qui a comme constructeur une chaîne de caractères.

    Après, il faudrait que tu nous en dises plus sur cette classe "Academie"...
    Académie est une classe avec ces attributs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            private string adresseSiege;
            private string adresseInternet;
            private string adresseEmail;
            private long telephone;
            private long fax;
    il n'existe que des getter/setter, il n'y pas de constructeur.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Si c'est toi qui as fait la classe "Academy" et que tu n'as pas défini de constructeur, il faut savoir alors que le compilateur génère automatiquement un constructeur publique sans paramètres.

    Mais je n'arrive pas très bien à comprendre: tu récupères une chaîne de caractères "Academy" de ton fichier XML et tu veux faire un transtypage en "Academy"... Mais comment dans ce cas pensais-tu que tes membres de la classe "Academy" allaient se remplir? Si tu ne lui spécifies pas comment, ça ne risque pas de se remplir, c'est surtout cela qu'il faut m'expliquer...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 64
    Par défaut
    Citation Envoyé par Ph_Gr Voir le message
    Si c'est toi qui as fait la classe "Academy" et que tu n'as pas défini de constructeur, il faut savoir alors que le compilateur génère automatiquement un constructeur publique sans paramètres.

    Mais je n'arrive pas très bien à comprendre: tu récupères une chaîne de caractères "Academy" de ton fichier XML et tu veux faire un transtypage en "Academy"... Mais comment dans ce cas pensais-tu que tes membres de la classe "Academy" allaient se remplir? Si tu ne lui spécifies pas comment, ça ne risque pas de se remplir, c'est surtout cela qu'il faut m'expliquer...
    la classe "Academy" est donnée par le prof, dans la classe, il n'a pas ajouté un constructeur...la difficulté est juste convertir une chaîne de caractère en type "Academy", je n'arrive pas à faire ce transtypage...les autres attributs sont en type primitif, il n'existe pas de problème de conversion.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bon, j'ai dû mal m'exprimer et j'en m'en excuse, je vais essayer d'être plus clair alors...

    Citation Envoyé par ivoratparis Voir le message
    la classe "Academy" est donnée par le prof, dans la classe, il n'a pas ajouté un constructeur...
    En .NET, une classe a toujours un constructeur. Si tu n'en vois pas un déclaré, alors par défaut c'est un constructeur publique sans paramètres.

    Citation Envoyé par ivoratparis Voir le message
    la difficulté est juste convertir une chaîne de caractère en type "Academy", je n'arrive pas à faire ce transtypage...les autres attributs sont en type primitif, il n'existe pas de problème de conversion.
    Si la classe "Academy" ne dispose pas d'un opérateur de transtypage (explicite ou implicite) alors il n'est pas possible d'effectuer ce transtypage.

    Mais dans tous les cas, tu ne réponds pas à ma question : que devrait faire le transtypage d'une chaîne de caractères en "Academy"? C'est à dire, comment les membres de "Academy" sont-ils sensés se remplir?

Discussions similaires

  1. [XSLT][OpenOffice] Problème filtre d'export XML
    Par Maximil ian dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 04/06/2011, 20h10
  2. linq to xml - problème pour mathml
    Par PatrickDescamps dans le forum C#
    Réponses: 4
    Dernier message: 16/12/2008, 19h09
  3. Réponses: 7
    Dernier message: 10/02/2008, 11h56
  4. [FLASH MX2004] Problème avec un datagrid & xml
    Par cedonline dans le forum Flash
    Réponses: 72
    Dernier message: 15/11/2005, 15h21
  5. Problème avec le parser XML
    Par sheura dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 09/11/2005, 18h26

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