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

ASP.NET Discussion :

Sélection de noeuds sur lecture d'un fichier XML


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 304
    Points : 53
    Points
    53
    Par défaut Sélection de noeuds sur lecture d'un fichier XML
    Bonjour,
    Pour afficher les données de mon fichier XML je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataSet.ReadXml("C:\\XMLFile.xml", XmlReadMode.InferSchema);
    Le probleme c'est que je n'aimerais prendre que certains éléments (root/horaire[@date="mon param"]).

    Merci de votre aide

  2. #2
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    regarde du cote de Xpath, ou de xmldocument.

  3. #3
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Points : 443
    Points
    443
    Par défaut
    Bonjour,

    Si tu veux faire dans la nouveauté, tu as aussi LinQ To XML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    XDocument doc = XDocument.Load("file.xml");
     
    var req = from horaire in doc.Descendants("horaire")
              select horaire.Attribute("date");
     
    req.ToList().ForEach(attr => Console.WriteLine(attr.Value));
    Je trouve que ça a l'avantage d'être plus lisible. Voici le fichier XML auquel le code fait référence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="utf-8" ?>
     
    <root>
      <horaire date="12/01/2008" />
    </root>

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 304
    Points : 53
    Points
    53
    Par défaut
    Ok, très bien, et est ce que c'est possible de mettre le résultat de la requete dans un dataset?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 304
    Points : 53
    Points
    53
    Par défaut
    J'ai voulu faire ca suite à un exemple sur le net :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            XDocument doc = XDocument.Load("C:\\XMLFile.xml");
     
            var req = from horaire in doc.Descendants("horaire")
                      where horaire.Attribute("date").Value == "03.11.2008"
                      select horaire;
     
            DataTable bindingTable = req.CopyToDataTable();
     
            xmlGridView.DataSource = bindingTable;
    Mais je n'ai pas la méthode CopyToDataTable();
    Pourquoi?

  6. #6
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Points : 443
    Points
    443
    Par défaut
    C'est bizarre, je ne la trouve pas non plus alors que ma requête est bien du type enumerable<T> ... Le using est bon et la référence à l'assembly System.data.DataSetExtensions y est aussi.

    Enfin bon, sinon, tu peux faire ça à la mano en créant ou utilisant un dataset, du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    xmlResult ds = new xmlResult();
    req.ToList().ForEach(attr => ds.ResultatXML.AddResultatXMLRow(attr.Value));
    J'ai auparavant créé un dataset typé nommé xmlResult contenant une datatable contenant un champ.

Discussions similaires

  1. Info sur la lecture d'un fichier XML
    Par Damien10 dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 09/03/2010, 12h03
  2. Question sur lecture d'un fichier text en Java
    Par ovcrash dans le forum Entrée/Sortie
    Réponses: 13
    Dernier message: 27/11/2007, 17h14
  3. Problème de lecture dans un fichier xml
    Par Pyra dans le forum Langage
    Réponses: 2
    Dernier message: 18/12/2005, 00h13
  4. Probleme de lecture d'un fichier XML
    Par chleuh dans le forum Langage
    Réponses: 8
    Dernier message: 30/08/2005, 12h04
  5. [C#] [XML] Lecture d'un fichier XML => Combobox
    Par Chad`Chiwa dans le forum Windows Forms
    Réponses: 8
    Dernier message: 09/03/2005, 08h57

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