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 :

[C#] Comment trier un contenu XML ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut [C#] Comment trier un contenu XML ?
    Bonjour tout le monde,

    j'ai chargé dans un objet de type XmlDocument un fichier XML qui a la structure suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <TabBem>
    <Bem>Remarques standard</Bem>
    <Bem>Affaire terminée</Bem>
    ....
    </TabBem
    Je dois trier le contenu des balises <Bem> par ordre alphabétique. Est-ce que quelqu'un connaîtrait un moyen de pouvoir faire ceci avec XPath ou autre?

    Par avance, merci pour votre aide!

    Cédric

  2. #2
    Membre expérimenté Avatar de toniolol
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2005
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 281
    Par défaut
    Salut,
    à ta place j'utiliserai un DataSet (.ReadXml, filtrage des rows, .WriteXml...).
    Tu peux trouver de nombreux post sur le sujet dans le forum.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut Toniolol,

    l'ennui est que la structure de mon fichier est comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    TabBem>
    <Bem>
    <fra>Remarques standard</fra>
    <ger>Standard Bemerkungen</ger>
    </Bem>
    <Bem>
    <fra>Affaire terminée</fra>
    <ger>abgeschrieben</ger>
    </Bem>
    ....
    </TabBem
    et au final, je dois livrer avec le texte en fonction de langue et trier dans l'ordre alphabétique le structure suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    TabBem>
    <Bem>Remarques standard</Bem>
    <Bem>Affaire terminée</Bem>
    ....
    </TabBem>
    Si je prends ma structure initial directement dans dans un DataSet, j'ai <Bem> comme Datatable et non <TabBem> comme je le pensais. Comment je peux structurer le DataSet pour que j'ai TabBem comme table afin que je puisse un select?

    D'avance, merci pour ton aide!

    Cédric

  4. #4
    Membre expérimenté Avatar de toniolol
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2005
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 281
    Par défaut
    En effet je n'avais pas compris comme ça.
    Là de suite je sèche..., si quelqu'un peut nous aider

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

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut Toniolol,

    Par rapport à mon dernier message, le "TabBem" correspond au nom de mon DataSet et "Bem" correspond au nom de mon DataTable et en fait j'ai bien toutes mes données chargées dans dans "Bem", donc je peux faire un select et un sort qui est comme suit pa exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DataRow[] listRow = table.Select(ger <> '' or ger = '', ger ASC");
    Comme je dois tout prendre les ééments "ger" et les trier, je dois faire une condition comme décrite ci-dessus, car je ne peux apparemment utiliser le tri tout seul. Si tu connais une meilleure façon de faire dit-le moi!

    Maintenant pour sélectionner que les éléments "ger" dans ma listRow, j'ai fait comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    DataRow row = listRow[indice];
    nodeBem.InnerXml = row.ItemArray[1].ToString();
    ...
    Est-ce que tu connaîtrais un moyen de faire et de pouvoir indiquer "ger" au lieu de mettre [1] comme condition pour sélectionner les données de la colonne "ger"?

    Par avance, je te remercie de ton aide!

    Cédric

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 191
    Par défaut
    Moi je serais toi, je regénererais un fichier XML à l'aide de XSLT. le XSLT te permettra de manipuler comme tu veux du XML...

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/06/2008, 08h24
  2. [SimpleXML] Trier le contenu d'un flux XML
    Par Paulux1 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 16/07/2007, 10h45
  3. Réponses: 1
    Dernier message: 27/05/2006, 23h13
  4. Réponses: 2
    Dernier message: 31/10/2005, 22h04
  5. [Balise XML] Comment récupérer le contenu entre 2 balise?
    Par ZoumZoumMan dans le forum C++Builder
    Réponses: 5
    Dernier message: 05/03/2004, 16h36

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