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

Windows Forms Discussion :

faire correspondre deux fichiers XML [Fait]


Sujet :

Windows Forms

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 138
    Par défaut faire correspondre deux fichiers XML
    Salut

    j'ai deux fichier XMl f1 et f2 qui ont par exemple la structure suivante :

    f1 :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <rocords>
    </rocord>
     
    <rocord_name>text</rocord_name>
    <rocord_id>1</rocord_id>
     
    </rocord>
    </rocords>
    f2 :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <enregistrements>
    </enregistrement>
     
    <enre_numero></enre_numero>
    <enre_nom></enre_nom>
     
    </enregistrement>
    </enregistrements>

    je veux stocker les informations qui sont dans f1 dans f2 pour obtenir a la fin

    f2 :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <enregistrements>
    </enregistrement>
     
    <enre_numero>1</enre_numero>
    <enre_nom>text</enre_nom>
     
    </enregistrement>
    </enregistrements>

    pour cela j'ai fais une base de données sql et j'ai cree une table pour lier chaque champ avec son correspondant :
    EX. :
    enre_numero = rocord_id
    au niveau du vb.net j'ai pu recuperer chque champ et son correspondant .
    mais le probleme comment avoir en sortie le fichier xml f2 ?

    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 138
    Par défaut
    on m'a proposé ceci:
    creer 2 DataSet et charger les 2 fichiers XML. Apres partourir la 1ere DataSet Row par Row et les inserer dans la 2eme DataSet. A la fin serialiser la 2eme DataSet dans le meme fichier XML

    mais je suis pas trop doué pour ce qui est manipulation xml par vb alors c'est toujours flou pour moi
    en plus c'est quoi la serialisation ?

    quelqu'un peut il me faire comprendre comment on s'y prend ?

    Merci d'avance

  3. #3
    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
    Par défaut
    Citation Envoyé par Ya7yaKech Voir le message
    en plus c'est quoi la serialisation ?
    http://dico.developpez.com/html/3030...ialisation.php

    Le plus simple à mon avis serait de passer par une transformation XSL

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 138
    Par défaut
    autrement dit !!

  5. #5
    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
    Par défaut
    Citation Envoyé par Ya7yaKech Voir le message
    autrement dit !!
    Euh... autrement dit quoi ? C'est une question ?

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 138
    Par défaut
    bon je suis coincé la vraiment je voix pas comment m'y prendre pour regler mon prb.
    bon qu'est ce que vous en penser de mettre mon f1 dans une dataset et le manipuler apres avoir en sortie f2 (c'est ce qu'on ma proposé)

    mais au niveau de la manipulation je sais pas trop quoi faire !!

    est ce que vous pouvez m'aider a y voire claire

    Merci

  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
    Par défaut
    Citation Envoyé par Ya7yaKech Voir le message
    bon qu'est ce que vous en penser de mettre mon f1 dans une dataset et le manipuler apres avoir en sortie f2 (c'est ce qu'on ma proposé)
    Ca me parait foireux comme méthode... ton fichier XML n'a pas le schema d'un DataSet, tu ne peux donc pas le charger directement dans un DataSet.

    La transformation XSL me semble être le meilleur moyen. C'est un système qui permet de transformer la structure d'un fichier XML en n'importe quoi d'autre (par exemple HTML, texte, ou dans ton cas, du XML avec une structure différente)

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 138
    Par défaut
    pouvez vous me donner un exemple ?car j'ai jamais fais cela avant.
    Merci

  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
    Par défaut
    tu définis la transformation dans un fichier transform.xsl :
    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
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
     
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
        <xsl:template match="/">
          <enregistrements>
            <xsl:for-each select="rocords/rocord">
              <enregistrement>
                <enre_numero><xsl:value-of select="rocord_id"/></enre_numero>
                <enre_nom><xsl:value-of select="rocord_name"/></enre_nom>
              </enregistrement>
            </xsl:for-each>
          </enregistrements>
        </xsl:template>
     
    </xsl:stylesheet>
    Et tu l'appliques à ton fichier d'entrée comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim inputFile As String = "D:\tmp\rocords.xml"
    Dim outputFile As String = "D:\tmp\enregistrements.xml"
    Dim xsltFile As String = "D:\tmp\transform.xsl"
     
    Dim xslt As New XslCompiledTransform()
    xslt.Load(xsltFile)
    xslt.Transform(inputFile, outputFile)
    EDIT: avec ce code ça n'indente pas les éléments, ça met tout sur une ligne... Pour avoir un formatage plus "propre" il faut passer par un XmlWriter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim inputFile As String = "D:\tmp\rocords.xml"
    Dim outputFile As String = "D:\tmp\enregistrements.xml"
    Dim xsltFile As String = "D:\tmp\transform.xsl"
    Dim xslt As New XslCompiledTransform()
    Dim settings As New XmlWriterSettings()
    settings.Indent = True
    Dim wr As New XmlWriter(outputFile, settings)
    xslt.Load(xsltFile)
    xslt.Transform(inputFile, wr)
    wr.Close()

  10. #10
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 138
    Par défaut
    Dim wr As New XmlWriter(outputFile, settings)


    il montre une erreur au niveau de XmlWriter
    il me demande de supprimer new et quand je le fais il ya autre erreures qui apparaisse

  11. #11
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 138
    Par défaut
    A quoi sert le deuxieme code ?Merci

  12. #12
    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
    Par défaut
    Citation Envoyé par Ya7yaKech Voir le message
    Dim wr As New XmlWriter(outputFile, settings)


    il montre une erreur au niveau de XmlWriter
    il me demande de supprimer new et quand je le fais il ya autre erreures qui apparaisse
    Ah oui c'est vrai, il n'y a pas de constructeur public... en fait il faut faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim wr As XmlWriter = XmlWriter.Create(outputFile, settings)
    Citation Envoyé par Ya7yaKech Voir le message
    A quoi sert le deuxieme code ?Merci
    C'est juste pour le formatage, parce que le 1er code écrit tout le fichier sur une seule ligne. Fonctionnellement ça ne change rien, c'est juste que ça génère un fichier plus facile à lire pour un humain

  13. #13
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 138
    Par défaut
    BON CA MARCHE
    MAIS CA NE CHANGE RIEN MEME SI JE N'UTILISE PAS LE CODE N° 2 IL M'AFFICHE LES FICHIER LISIBLE (SAUF SI JE NE SUIS PAS UNETRE HUMAIN ) LOL

    MERCI BEAUCOUP

  14. #14
    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
    Par défaut
    Citation Envoyé par Ya7yaKech Voir le message
    MAIS CA NE CHANGE RIEN MEME SI JE N'UTILISE PAS LE CODE N° 2 IL M'AFFICHE LES FICHIER LISIBLE
    Ah bon ? Il écrit pas tout sur la même ligne ? Bizarre, chez moi ça fait ça...

    N'oublie pas de marquer le sujet comme stp

  15. #15
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 138
    Par défaut
    oui ca marche nikel
    merci

  16. #16
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 138
    Par défaut stocker du xml dans une String
    Salut ;

    http://www.developpez.net/forums/d67...-fichiers-xml/

    sur cette discussion vous m'avez aider a faire une correspondance entre deux fichiers xml

    en donnant f1 en entré et f2 en sortie.(f1 et f2 sont de vrai fichiers XML)
    bon est ce que c'est possible d'avoir le contenu de f2 dans une variable string sans meme creer f2?

    Merci

  17. #17
    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
    Par défaut
    Citation Envoyé par Ya7yaKech Voir le message
    bon est ce que c'est possible d'avoir le contenu de f2 dans une variable string sans meme creer f2?
    Oui, il faut utiliser un StringWriter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim inputFile As String = "D:\tmp\rocords.xml"
    'Dim outputFile As String = "D:\tmp\enregistrements.xml"
    Dim xsltFile As String = "D:\tmp\transform.xsl"
    Dim xslt As New XslCompiledTransform()
    Dim settings As New XmlWriterSettings()
    settings.Indent = True
    Dim swr As New StringWriter()
    Dim wr As XmlWriter = XmlWriter.Create(swr, settings)
    xslt.Load(xsltFile)
    xslt.Transform(inputFile, wr)
    Dim resultat As String = swr.ToString()
    wr.Close()

  18. #18
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 138
    Par défaut
    alors dans ce cas "swr" jouera le rôle de mon fichier f2
    mais avant que je change tout mon code
    je veux savoir si c'est possible de faire des manipulations sur swr autrement dit :
    parcourir , modifier , repérer les élément (la racine du XML, les éléments...) ,....

    Merci

  19. #19
    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
    Par défaut
    Citation Envoyé par Ya7yaKech Voir le message
    je veux savoir si c'est possible de faire des manipulations sur swr autrement dit :
    parcourir , modifier , repérer les élément (la racine du XML, les éléments...)
    Pas directement, non
    Par contre tu peux charger le contenu de swr dans un XmlDocument, et manipuler le XmlDocument

  20. #20
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 138
    Par défaut
    oui j'ai voulu le faire mais ca marche pas

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            Dim Xmldoc As New XmlDocument
            Xmldoc.Load(swr)

    Merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Outils sur les différences entre deux fichiers XML
    Par Community Management dans le forum XML/XSL et SOAP
    Réponses: 19
    Dernier message: 21/07/2008, 15h21
  2. faire correspondre deux cellules
    Par ncls1983 dans le forum Excel
    Réponses: 2
    Dernier message: 08/06/2007, 14h34
  3. [XSLT] probleme de parcourt deux fichiers xml dans xsl
    Par coucouA dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 23/07/2006, 20h32
  4. [JDOM] Comparer deux fichiers XML en Java
    Par calimero2611 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 30/06/2006, 11h19
  5. [XML] Convertir fichier XLS en deux fichiers XML
    Par Kornoman dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 31/03/2006, 15h30

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