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 :

[2.0][C#]Trier les Balises d'un Xml [Débutant(e)]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 159
    Par défaut [2.0][C#]Trier les Balises d'un Xml
    Bonjour,

    J'ai un xml (XmlDocument) dans mon code C# et j'aimerais trier les balises.

    mon xml:
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <Root>
    <Person><Nom>Dupond</Nom><Prenom>Stéphane</Prenom></Person>
    <Person><Nom>Chirac</Nom><Prenom>Bernard</Prenom></Person>
    <Person><Nom>Monnier</Nom><Prenom>Eric</Prenom></Person>
    ....
    </Root>

    J'aimerais trier alphabétiquement par la balise Nom.

    Comment faire?

    J'avoue avoir trouver quelques pistes qui me dise qu'il faut que j'utilise un DataView et la méthode Sort mais je ne comprend pas comment convertir mon XmlDocument en un DataView?

    Pouvez-vous me mettre sur la piste?

    Merci

  2. #2
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Salut,

    Je crois que c'est possible de le faire en XSL.

    Sinon il existe une bibliotheque qui offre une méthode de trie :
    Chilkat XML Parser

  3. #3
    Membre éprouvé Avatar de Mourad
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 152
    Par défaut
    le plus simple serait de passer par un dataset à partir duquel tu récupères un datatable ensuite une dataview et tu lui passes ton expression de tri

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 159
    Par défaut
    OK merci pour ces conseils mais je crois que je vais utiliser la méthoda à Mourad car j'ai pas envie de payer pour un truc que je peux faire moi et je n'ai pas envie de passer par un XSLT pour faire ceci.

    Donc j'arrive a faire ceci:

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    XmlDocument doc = new XmlDocument();
                doc.LoadXml("mon xml");
                XmlNodeReader reader = new XmlNodeReader(doc);
                DataSet ds = new DataSet("Xmldoc");
                ds.ReadXml(reader);
                reader.Close();
     
                DataTable DtTable = new DataTable("DtXml");
                DtTable = ds.Tables["Xmldoc"];

    Mais je ne comprends pas pourquoi je n'arrive pas à charger mon dataset dans mon datable?

    Pouvez-vous m'aider?

    Merci

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 159
    Par défaut
    Ok c'est bon j'ai compris comment faire j'étais un niveau trop haut donc je ne pouvais pas charger...


    Maintenant comment faire pour trier par "sous colonne" car dans ce xml ci:

    Code XML : 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
    21
    22
    23
    24
    25
     
    <Root>
       <Person>   
          <Presonnel> 
              <Nom>Dupond</Nom>
              <Prenom>Stéphane</Prenom>
          </Personnel>
          <Fonction id="1">Chef</Fonction>
       </Person>
       <Person>
         <Personnel>
             <Nom>Chirac</Nom>
             <Prenom>Bernard</Prenom>
         </Personnel>
         <Fonction id="2">sous-Chef</Fonction>
        </Person>
        <Person>
          <Personnel>
             <Nom>Monnier</Nom>
             <Prenom>Eric</Prenom>
          </Personnel>
          <Fonction id="3">Employées</Fonction>
        </Person>
    ....
    </Root>

    Donc dans mon code je fait ainsi :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(XDocument.selectSingleNode("/dfs:myFields/dfs:dataFields/ns2:searchPersResponse/ns2:searchPersResult/Root").xml);
    XmlNodeReader reader = new XmlNodeReader(doc);
    DataSet ds = new DataSet("Xmldoc");
    ds.ReadXml(reader);
    reader.Close();
    DataTable DtTable = new DataTable("DtXml");
    DtTable = ds.Tables["Person"];
     
    DataView DtView = new DataView(DtTable);

    Tous est chargé dans mon DataView mais maintenant comment trier par mon Nom car si je fais:

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    DtView.Sort = "Personnel/Nom";
    Ca me renvoit une erreur j'ai regardé sur MSDN mais il n'explique que comment trier sur deux colonne mais pas par "sous colonne".

    Merci pour votre aide

Discussions similaires

  1. manipuler les balises dans fichier xml
    Par farid0031 dans le forum C++Builder
    Réponses: 4
    Dernier message: 20/12/2011, 14h25
  2. [XSLT] Prefixer toutes les balises d'un XML
    Par thepugn1 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 18/12/2010, 10h56
  3. [DOM] organiser les balises du fichier XML
    Par nadiaflamingenierie dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 08/01/2008, 14h59
  4. [logging] Modifier les balises de sortie XML de Java ?
    Par MiJack dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 13/12/2005, 13h20
  5. [Documentation][XSLT][XSLFO]Les balises xslfo
    Par Lydiane dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 14/08/2002, 11h31

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