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 :

XML foreach (var .. in .. where ) break? [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 63
    Par défaut XML foreach (var .. in .. where ) break?
    Titre explicite lol !
    Bon je m'explique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach (var dam in docu.Descendants("Mon_Noeud").Where(d => d.Element("id").Value == mavariable))
    {
        this.variable = dam.Element("Mon_Noeud2").Value;
        if (macondition)
        {
             etc...
        }
    }
    Donc je parcours mon XML pour récupérer la partie du XML ( "Mon_Noeud" ) ou le noeud "id" = "mavariable".
    De la j'attribue la valeur de <Mon_Noeud><Mon_Noeud2>valeur</Mon_Noeud2></Mon_Noeud> à this.variable.
    Et je balance ma condition et mes instructions.
    Le truc c'est que s'il reste des "Mon_Noeud" à vérifier une fois les instructions finis il retourne au foreach... pour rien vue que mon "id" ne peu pas avoir de doublon.
    Puis-je éviter ça ? avec une autre instruction ?
    Merci.

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 63
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    foreach (var dam in docu.Descendants("Mon_Noeud").Where(d => d.Element("id").Value == mavariable))
    {
        this.variable = dam.Element("Mon_Noeud2").Value;
        if (macondition)
        {
             etc...
        }
    break;
    }
    La réponse était dans mon titre... mais quel con... :/
    Désolé.

  3. #3
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Ouais enfin sauf que le break doit être à l'intérieur du if, sinon ça fait n'importe quoi...

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 63
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Ouais enfin sauf que le break doit être à l'intérieur du if, sinon ça fait n'importe quoi...
    Ok
    Mais c'est bizarre ça m'a pas causé de soucis au débuggeur.

  5. #5
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Ben ça va pas causer de problème au débugger, mais...

    Si la première itération ne correspond pas à ton résultat, alors tu vas sortir de la boucle quand même.

    Mais d'après ton message, en fait, c'est surtout la boucle qui te sert à rien.

    T'as pas besoin du foreach en fait (et donc pas du break non plus)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        this.variable = docu.Descendants("Mon_Noeud").Where(d => d.Element("id").Value == mavariable)[0];
        if (macondition)
        {
             etc...
        }

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 63
    Par défaut
    Ce qui m'intéresse c'est la valeur de "Mon_Noeud2" en connaissant celle de "id"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <xml>
      <Mon_Noeud>
        <id>bidule1</id>
        <Mon_Noeud2>bidule2</Mon_Noeud2>
      </Mon_Noeud>
      <Mon_Noeud>
        <id>bidule3</id>
        <Mon_Noeud2>bidule4</Mon_Noeud2>
      </Mon_Noeud>
    etc...
    </xml>
    Je vais essayer avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.variable = docu.Descendants("Mon_Noeud2").Where(d => d.Element("id").Value == mavariable)[0];
    Mais il a pas l'air de comprendre le [0] à la fin.

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

Discussions similaires

  1. XML et LINQ - Clause WHERE
    Par JLuc01 dans le forum VB.NET
    Réponses: 3
    Dernier message: 15/11/2013, 00h45
  2. while vs foreach var list (@toto)
    Par nkdb dans le forum Langage
    Réponses: 7
    Dernier message: 08/12/2006, 21h55
  3. [SQL] Comment ne pas exécuter une clause WHERE si une var est nulle
    Par charlysquare dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 01/05/2006, 21h12
  4. [SimpleXML] XML et parcours des noeuds avec foreach
    Par kult dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 15/11/2005, 15h36
  5. Réponses: 3
    Dernier message: 05/08/2005, 19h34

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