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 XML : selections d'éléments


Sujet :

Linq

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 174
    Points : 38
    Points
    38
    Par défaut LINQ XML : selections d'éléments
    Bonjour,

    Je cherche à coder en C# une requête LINQ qui me permettrait de récupérer la liste de tous les CDATA contenus dans des éléments <labels></labels> et <viewlabels></viewlabels> du fichier XML ci-dessous.
    En sortie je devrais avoir une liste contenant :
    A_Name_25mm_Green_Mid
    A_ViewName_7mm_Underlined

    Pour le moment je n'y arrive pas du tout.
    Une idée ?


    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <STYLE version="10.00.04.0004">							
    		<drawingInfo>
    				<labels>
    					<annotation id="1" type="1">
    						<template>
    							<![CDATA[A_Name_25mm_Green_Mid]]>
    						</template>
    					</annotation>
    				</labels>
    		</drawingInfo>							
    		<viewlabels>
    			<annotation id="0" type="3">
    				<template>
    					<![CDATA[A_ViewName_7mm_Underlined]]>
    				</template>
    			</annotation>
    		</viewlabels>							
    </STYLE>
    Merci d'avance.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 174
    Points : 38
    Points
    38
    Par défaut reussite partielle
    Le bout de code ci-dessous répond partiellement à mon besoin, mais pas totalement puisque ca ne me remonte que les éléments descendants de <labels>.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
         XElement root = XElement.Load("test.xml");
     
     
                IEnumerable<String> labelList =
                                    from item in root.Descendants("labels")
                                    where item.Element("annotation") != null
                                    && item.Element("annotation").Element("template") != null
                                    && item.Element("annotation").Element("template").FirstNode != null
                                    && item.Element("annotation").Element("template").FirstNode.NodeType == System.Xml.XmlNodeType.CDATA
                                    select item.Element("annotation").Element("template").FirstNode.Parent.Value.Trim();

  3. #3
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    Bonjour,

    Tu t'es un peu compliqué la tache :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                var xml = XElement.Load("test.xml");
     
                var values = xml.Descendants("template").Select(e => e.Value);
     
                foreach (var value in values)
                {
                    Console.WriteLine(value);
                }
     
                Console.ReadLine();

Discussions similaires

  1. [Linq] to XML : Liste d'élément d'un noeud ?
    Par Ticoche dans le forum C#
    Réponses: 4
    Dernier message: 17/09/2008, 15h14
  2. [XSLT] Selection d'éléments 4 par 4
    Par VinnieMc dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 27/05/2008, 19h36
  3. Selection plusieurs éléments d'une liste
    Par popo68 dans le forum Access
    Réponses: 3
    Dernier message: 01/02/2007, 17h01
  4. Selection d'éléments de plusieurs tables
    Par cauriera dans le forum Langage SQL
    Réponses: 4
    Dernier message: 10/01/2007, 13h50
  5. [XML] exclure des éléments d'un éléments parent
    Par Djakisback dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 31/03/2006, 10h45

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