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 :

Merge (fusion) de fichiers xml


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Analyste Programmeur
    Inscrit en
    Mai 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Mai 2011
    Messages : 45
    Points : 36
    Points
    36
    Par défaut Merge (fusion) de fichiers xml
    Bonjour,
    Je voudrais fusionner plusieurs fichiers xml pour en avoir plus qu'un seul.
    J'ai fait des recherchers sur le net, mais à chaque fois ça ne concerne que la fusion de deux fichiers, or moi il faut que j'en récupère un certain nombre. Il faut par exemple que je prenne tous les fichiers xml contenu dans un répertoire donné et que je fasse un merge de tout ces fichiers.
    J'ai par ailleurs essayer d'utiliser XmlDocument, car c'est ce qui revient souvent dans les forums, mais je n'ai même pas accès à cette propriété. A noter que je développe en application Console.
    Mon problème est donc : Comment fusionner des fichiers xml, dont la source et le nombre peut varier, dans une application console ?
    Merci de votre aide

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    En quoi consiste cette fusion précisément ? Quelle est la structure des documents, et qu'est-ce que tu veux obtenir ?

    Citation Envoyé par Ninine7 Voir le message
    J'ai par ailleurs essayer d'utiliser XmlDocument, car c'est ce qui revient souvent dans les forums, mais je n'ai même pas accès à cette propriété.
    Quelle propriété ? XmlDocument est une classe... c'est à ça que tu n'as pas accès ? Ajoute using System.Xml; au début du code.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Analyste Programmeur
    Inscrit en
    Mai 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Mai 2011
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    En fait je dispose de documents ayant la même structure, mais avec des données différentes. Le but est de les fusionner pour en avoir plus qu'un.
    J'ai bien la référence à using System.Xml; mais je n'ai pas accès à la classe XmlDocument, c'est pour ça que je ne comprend pas...ça vient peut-être du fait que c'est une application console et pas une application possédant une interface, je ne sais pas...

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 1
    Points : 4
    Points
    4
    Par défaut
    le fait que l'application soit en mode Console n'a aucune importance, le système XML n'a aucune propriété d'affichage, il se contente de faire du traitement de données.

    l'idée est généralement de créer un ou plusieurs documents avec une syntaxe du genre : XmlDocument doc = new XmlDocument(), de les charger et d'en créer un nouveau qui sera la combinaison.

    si tu comptes juste lire plusieurs fichiers pour réécrire un fichier de sortie, sans traitement autre que joindre les éléments sous des noeuds particuliers (par exemple /base/table1 et joindre les éléments "ligne"), le mieux est certainement d'utiliser XmlTextReader/XmlTextWriter.

    juste un lien si tu lis l'anglais:
    http://www.c-sharpcorner.com/uploadf...tmellli21.aspx

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Analyste Programmeur
    Inscrit en
    Mai 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Mai 2011
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Merci pour le lien, j'avas déjà vu ce genre d'exemples, et là encore, je ne peux pas accéder à la classe XmlTextReader, tout comme xmlDocument...partant de là je ne peux pas tester grand chose... J'ai pourtant bien l'assembly qu'il faut (System.xml) donc là je ne vois pas le problème si tu dis que ça ne change rien que ce soit une application console...

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 066
    Points : 4 233
    Points
    4 233
    Par défaut
    les exemples de chez microsoft sont en mode console:
    http://msdn.microsoft.com/fr-fr/libr...=VS.80%29.aspx

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par Ninine7 Voir le message
    En fait je dispose de documents ayant la même structure, mais avec des données différentes. Le but est de les fusionner pour en avoir plus qu'un.
    Oui j'avais bien compris, mais ce n'est pas assez précis... par exemple si tu es sûr que toutes les données sont différentes, c'est simple, mais s'il faut gérer la fusion selon des critères spécifiques (par exemple même id, mêmes valeurs etc), c'est plus compliqué. Il n'y a pas une réponse unique à ta question...

    Montre un extrait de 2 fichiers XML à fusionner, et le fichier XML à produire

    Citation Envoyé par Ninine7 Voir le message
    J'ai bien la référence à using System.Xml; mais je n'ai pas accès à la classe XmlDocument, c'est pour ça que je ne comprend pas...ça vient peut-être du fait que c'est une application console et pas une application possédant une interface, je ne sais pas...
    using System.Xml n'est pas une référence, c'est une importation de namespace. Il doit te manquer une référence à l'assembly System.Xml (clic droit sur le projet, ajouter une référence)

  8. #8
    Nouveau membre du Club
    Femme Profil pro
    Analyste Programmeur
    Inscrit en
    Mai 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Mai 2011
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par Ninine7 Voir le message
    J'ai pourtant bien l'assembly qu'il faut (System.xml) donc là je ne vois pas le problème si tu dis que ça ne change rien que ce soit une application console...
    Quand je dis que je ne comprends pas pourquoi je n'accède pas à la classe XlmDocument ou XmlTextReader, j'ai bien entendu vérifier les références au préalable, cela va de soi.

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Bah si tu as bien la référence et le using, je vois vraiment pas pourquoi ça marcherait pas... la classe existe dans toutes les versions du framework, même la 1.0, et même le client profile
    Donc si ça marche pas c'est que tu as du faire quelque chose de travers, mais je vois pas quoi...

  10. #10
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 066
    Points : 4 233
    Points
    4 233
    Par défaut
    le mieux dans ce cas là c'est de recréer un projet

Discussions similaires

  1. Réponses: 34
    Dernier message: 23/06/2010, 17h36
  2. [XSLT] Fusion de fichiers XML par XSLT
    Par 84mickael dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 14/04/2008, 22h26
  3. [JDOM] Fusion de fichiers XML
    Par rptmat57 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 18/07/2007, 12h37
  4. fusion de fichiers XML et access 2003
    Par frdek dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 29/11/2005, 12h23
  5. [XSLT] Fusion de fichier XML ???
    Par webtheque dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 04/03/2005, 21h13

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