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 :

Lire une valeur dans un noeud XML


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 Lire une valeur dans un noeud XML
    Décidement je m'en sort pas.
    Je cherche des Tuto sur LinQ XML, mais je trouve rien que je comprenne assez ou qui m'aiguille assez pour ce que je veux faire.
    Donc mon XML se structure en gros comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <root>
     <noeud>
      <noeud1></noeud1>
      <noeud2></noeud2>
      <noeud3></noeud3>
      <noeud4></noeud4>
     </noeud>
     <noeud>
      <noeud1></noeud1>
      <noeud2></noeud2>
      <noeud3></noeud3>
      <noeud4></noeud4>
     </noeud>
    <root>
    Je dois chercher une valeur comprise soit dans mon noeud1 ou mon noeud2
    S'il la trouve dans noeud1 il doit me stocker noeud3 (du même <noeud> bien sur)dans une variable s'il la trouve dans noeud2 il doit me stocker noeud4.
    Alors j'essaye avec du
    From...
    Where...
    Select...
    mais hum... je dois rater un truc

    Merci à celui qui soit me trouvera un bon tuto simple soit me solutionne mon truc.

  2. #2
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Y'a probablement moyen de faire mieux, mais un petit rapide : (la variable xml est un XElement contenant ton XML) :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    foreach (var xmle in xml.Elements("noeud").Where(d => d.Element("noeud1").Value != ""))
                {
                    xmle.Element("noeud3").Value = xmle.Element("noeud1").Value;
                }
                foreach (var xmle in xml.Elements("noeud").Where(d => d.Element("noeud2").Value != ""))
                {
                    xmle.Element("noeud4").Value = xmle.Element("noeud2").Value;
                }

  3. #3
    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
    J'ai du mal m'exprimer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <root>
     <noeud>
      <noeud1>9</noeud1>
      <noeud2>10</noeud2>
      <noeud3>5000</noeud3>
      <noeud4>4000</noeud4>
     </noeud>
     <noeud>
      <noeud1>5</noeud1>
      <noeud2>6</noeud2>
      <noeud3>12000</noeud3>
      <noeud4>9000</noeud4>
     </noeud>
    </root>
    La dans cet exemple si je lui dis de chercher 10(10 étant une variable string dont la valeur est définie plus haut), j'aimerai qu'il me stock 4000 dans une variable string résultat.
    Si ma variable de recherche a pour valeur 5, il faut qu'il me stock 12000 dans
    résultat.

    Merci.

    Peu être comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach (var xmle in xml.Elements("noeud").Where(d => d.Element("noeud1").Value = mavariablederecherche))
                {
                    string resultat = xmle.Element("noeud3").Value;
                }
                foreach (var xmle in xml.Elements("noeud").Where(d => d.Element("noeud2").Value = mavariabledereche))
                {
                    string resultat = xmle.Element("noeud4").Value;
                }

  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
    Wé c'est bon ça fonctionne comme ça merci !

  5. #5
    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 vladvonjim Voir le message
    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
    <root>
     <noeud>
      <noeud1>9</noeud1>
      <noeud2>10</noeud2>
      <noeud3>5000</noeud3>
      <noeud4>4000</noeud4>
      <noeud5>true</noeud5>
     </noeud>
     <noeud>
      <noeud1>5</noeud1>
      <noeud2>6</noeud2>
      <noeud3>12000</noeud3>
      <noeud4>9000</noeud4>
      <noeud5>true</noeud5>
     </noeud>
    </root>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    foreach (var xmle in xml.Elements("noeud").Where(d => d.Element("noeud1").Value = mavariablederecherche))
                {
                    string resultat = xmle.Element("noeud3").Value;
                    string resultat2 = xmle.Element("noeud5").Value;
                }
                foreach (var xmle in xml.Elements("noeud").Where(d => d.Element("noeud2").Value = mavariabledereche))
                {
                    string resultat = xmle.Element("noeud4").Value;
                    string resultat2 = xmle.Element("noeud5").Value;
                }
    Donc la version au dessus marche mais celle la a pas l'air de fonctionner... pourquoi ?

Discussions similaires

  1. Lire une valeur dans ma bdd, et une erreur inutile !
    Par Dr_shaman dans le forum VB.NET
    Réponses: 3
    Dernier message: 04/11/2008, 16h06
  2. Lire une valeur dans une spinbox
    Par arknouf dans le forum Qt
    Réponses: 3
    Dernier message: 21/04/2008, 16h52
  3. Modifier une valeur dans un fichier xml
    Par arthrax dans le forum VBScript
    Réponses: 3
    Dernier message: 03/04/2007, 09h46
  4. Lire une valeur dans le registre
    Par John.s dans le forum C
    Réponses: 2
    Dernier message: 26/11/2003, 19h55
  5. Prendre une valeur dans la grappe XML
    Par Sandrine75 dans le forum XMLRAD
    Réponses: 7
    Dernier message: 21/05/2003, 10h26

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