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

Linq Discussion :

[LINQ to XML] Problème avec un requête linq (nullreferencexception)


Sujet :

Linq

  1. #1
    Membre confirmé
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Points : 568
    Points
    568
    Par défaut [LINQ to XML] Problème avec un requête linq (nullreferencexception)
    Salut !

    J'ai besoin de votre aide concernant une requete LINQ (c la première fois que j'utilise cette techno d'ailleur). Ma requete sert simplement a récupérer une valeur dans un fichier XML

    voici le fichier en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="utf-8" ?>
    <Plugin>
      <dlls><![CDATA[Addins.Html]]></dlls>
      <category><![CDATA[Web]]></category>
      <available>
        <match><![CDATA[html]]></match>
      </available>
    </Plugin>


    mon code LINQ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                            XDocument xmldoc = XDocument.Load(dlls[i]);
     
                            var dll_name = from x in xmldoc.Elements()
                                           select new PluginsLINQ
                                           {
                                               Name = xmldoc.Element("dlls").Value
                                           };

    le code de ma class PluginsLINQ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        public class PluginsLINQ
        {
            public string Name { get; set; }
        }

    jusque la tout vas bien sauf que quand le fait cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                            foreach (var x in dll_name)
                            {
                                _temp = x.Name;
                            }

    j'obtient l'erreur (voir image jointe).


    Je n'arrive pas a trouver ou est le problème !!!

    merci de votre aide
    Viva la viva... en el chorizo de la corida de leon.... (cette phrase n'a aucun sens je sais )

  2. #2
    Membre régulier Avatar de Nadd
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 160
    Points : 95
    Points
    95
    Par défaut
    Bonsoir,

    L'erreur obtenue ne provient pas de ta boucle foreach mais de ton code de sélection. Essaye plutôt ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                var dll_name = from x in document.Elements("Plugin")
                               select new PluginsLINQ
                               {
                                   Name = x.Element("dlls").Value
                               };
    Cordialement,

    Nicolas.

  3. #3
    Membre confirmé
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Points : 568
    Points
    568
    Par défaut
    Merci Nadd, mais ta solutions ne fonctionne pas
    Viva la viva... en el chorizo de la corida de leon.... (cette phrase n'a aucun sens je sais )

  4. #4
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 253
    Points
    28 253
    Par défaut
    et en debug, tu ne peux pas verifier que les elements existent vraiment?

    notamment xmldoc


    d'ailleurs, tu fais un from x et tu ne réutilises jamais "x". :s c'est normal?
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  5. #5
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Essaye ca comme requete:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var dll_name = from x in xmldoc.Elements()
                                           select new PluginsLINQ()
                                           {
                                               Name = xmldoc.Element("dlls").Value
                                           };

  6. #6
    Membre confirmé
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Points : 568
    Points
    568
    Par défaut
    J'ai trouvé la solution elle etait devant moi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                            var dll_name = from x in xmldoc.Elements()
                                           select new PluginsLINQ
                                           {
                                               Name = x.Element("dlls").Value
                                           };
    La suggestion de Louis-Guillaume Morand etait bonne je n'utilisais jamais x

    Merci a vous pour l'aide.
    Viva la viva... en el chorizo de la corida de leon.... (cette phrase n'a aucun sens je sais )

  7. #7
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 253
    Points
    28 253
    Par défaut
    La suggestion de Louis-Guillaume Morand etait bonne je n'utilisais jamais x
    et j'ai jamais fait de linq de ma vie (mais j'ai lu le tuto de tomtom two days ago)
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  8. #8
    Membre régulier Avatar de Nadd
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 160
    Points : 95
    Points
    95
    Par défaut
    Quant à moi, je me demande comment cela se fait-il que ma solution, pourtant testée en local, n'aie pas fonctionné .

    Amicalement,

    Nicolas.

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

Discussions similaires

  1. Binding HS avec une requête LINQ retournant plusieurs tables
    Par abbepierre94 dans le forum Silverlight
    Réponses: 4
    Dernier message: 01/02/2011, 11h19
  2. Linq to dataSet problème avec AsEnumerable()
    Par littlefish dans le forum Linq
    Réponses: 3
    Dernier message: 17/09/2010, 17h29
  3. Requête linq to xml
    Par laurent.fructus dans le forum Linq
    Réponses: 3
    Dernier message: 31/05/2009, 23h41
  4. linq to xml - problème pour mathml
    Par PatrickDescamps dans le forum C#
    Réponses: 4
    Dernier message: 16/12/2008, 19h09
  5. Problème avec les méthodes Linq to SQL en C#
    Par Lennox dans le forum Silverlight
    Réponses: 7
    Dernier message: 05/09/2008, 18h53

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