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

XSL/XSLT/XPATH XML Discussion :

Fusion de fichiers XML


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Par défaut Fusion de fichiers XML
    Bonjour,

    J'ai un problème que je n'arrive pas à résoudre; je vous en remercie par avance d'y jeter un coup d’œil.
    Je souhaite faire des fusion de fichiers XMl en un seul que j'utiliserai avec xsl.
    F1.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <NewsLetterListeCertificat xmlns="http://tempuri.org/NewsLetterListeCertificat.xsd">
      <NewsLetterListeCertificat>
        <ID_CERTIF>5518</ID_CERTIF>
        <CD_CERTIF>RUVFBOJAN11</CD_CERTIF>
        <LB_PROD_US>Animal/denrées animales et produits d'origine animale/Viandes et produits carnés/viande fraîches d'espèces domestiques/espèce bovine/</LB_PROD_US>
        <ID_PROD_US>203</ID_PROD_US>
        <LB_PAYS>RUSSIE</LB_PAYS>
        <DT_VALID>31/05/2011</DT_VALID>
        <CH_NOM_FICHIER>RUVFBOJAN11.pdf</CH_NOM_FICHIER>
        <CH_NOM_IMAGE>RUVFBOJAN11@.pdf</CH_NOM_IMAGE>
        <CD_PROD_US>VFB</CD_PROD_US>
      </NewsLetterListeCertificat>
    </NewsLetterListeCertificat>
    F2.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <NewsLetterListeDocComp xmlns="http://tempuri.org/NewsLetterListeDocComp.xsd">
      <NewsLetterListeDocComp>
        <ID_BRPT>455</ID_BRPT>
        <ID_PROD_US>266</ID_PROD_US>
        <LB_PROD_US>Animal/Alimentation animale/</LB_PROD_US>
        <ID_PAYS>36</ID_PAYS>
        <LB_PAYS>BRESIL</LB_PAYS>
        <LB_FICHIER>BRESIL_Attestation sanitaire Alimentation animale</LB_FICHIER>
        <FG_ETAT>V</FG_ETAT>
        <CH_NOM_FICHIER>BR ALI AVR 11.doc</CH_NOM_FICHIER>
        <DT_VALID>26/05/2011</DT_VALID>
      </NewsLetterListeDocComp>
    </NewsLetterListeDocComp>
    Voila j’arrive bien à faire la fusion mais je n'arrive pas à me débarrasser des namespace
    Cequi me donne le fichier Final.xml
    Code : 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
    26
    27
    28
    29
    30
    31
     
    <?xml version="1.0" encoding="utf-8"?>
    <?xml-stylesheet href="NewsLetter.xsl" type="text/xsl"?>
    <nl:NewsLetter xmlns:nl="http://www.expadon-dgal/EXPADON">
    <NewsLetterListeCertificat xmlns="http://tempuri.org/NewsLetterListeCertificat.xsd">
      <NewsLetterListeCertificat>
        <ID_CERTIF>5518</ID_CERTIF>
        <CD_CERTIF>RUVFBOJAN11</CD_CERTIF>
        <LB_PROD_US>Animal/denrées animales et produits d'origine animale/Viandes et produits carnés/viande fraîches d'espèces domestiques/espèce bovine/</LB_PROD_US>
        <ID_PROD_US>203</ID_PROD_US>
        <LB_PAYS>RUSSIE</LB_PAYS>
        <DT_VALID>31/05/2011</DT_VALID>
        <CH_NOM_FICHIER>RUVFBOJAN11.pdf</CH_NOM_FICHIER>
        <CH_NOM_IMAGE>RUVFBOJAN11@.pdf</CH_NOM_IMAGE>
        <CD_PROD_US>VFB</CD_PROD_US>
      </NewsLetterListeCertificat>
    </NewsLetterListeCertificat>
    <NewsLetterListeDocComp xmlns="http://tempuri.org/NewsLetterListeDocComp.xsd">
      <NewsLetterListeDocComp>
        <ID_BRPT>455</ID_BRPT>
        <ID_PROD_US>266</ID_PROD_US>
        <LB_PROD_US>Animal/Alimentation animale/</LB_PROD_US>
        <ID_PAYS>36</ID_PAYS>
        <LB_PAYS>BRESIL</LB_PAYS>
        <LB_FICHIER>BRESIL_Attestation sanitaire Alimentation animale</LB_FICHIER>
        <FG_ETAT>V</FG_ETAT>
        <CH_NOM_FICHIER>BR ALI AVR 11.doc</CH_NOM_FICHIER>
        <DT_VALID>26/05/2011</DT_VALID>
      </NewsLetterListeDocComp>
    </NewsLetterListeDocComp>
    </nl:NewsLetter>
    Voici le code VB qui fait la fusion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dim docGene, docEtab, docFich As New XmlDocument
     
                docGene.Load(String.Format("{0}Gene.xml", fullFileName))
     
                docEtab.Load(String.Format("{0}FicheTechs.xml", fullFileName))
                docFich.Load(String.Format("{0}ListeEtab.xml", fullFileName))
     
                Dim impNode As XmlNode = docGene.ImportNode(docEtab.DocumentElement, True)
                docGene.DocumentElement.AppendChild(impNode)
                impNode = docGene.ImportNode(docFich.DocumentElement, True)
                docGene.DocumentElement.AppendChild(impNode)
     
                docGene.Save(String.Format("{0}Gene.xml", fullFileName))
    Ce n'est pas normal d'avoir des namespace dans les élément du xml en plus de celui du fichier??
    Merci par avance de toute aide.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Si tu veux te débarrasser des namespaces de tes deux documents de départ, tu ne vas pas pouvoir utiliser d'import de node. Il va falloir parcourir tous les nœuds et les recréer avec le même nom, mais sans namespace, dans le document final.

    Note au passage que je n'ai pas bien compris ta question finale. Mais si tu te demandes s'il n'est pas mal d'avoir plus d'un namespace dans un document XML... Euh, non. Ce sont des namespaces. Des espaces de nom. La raison même de leur existence est la possibilité d'en avoir plus d'un.
    Ne pouvoir avoir qu'un seul namespace, c'est la même chose que ne pas avoir de namespace du tout.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Par défaut Espace de non
    Citation Envoyé par thelvin Voir le message
    Si tu veux te débarrasser des namespaces de tes deux documents de départ, tu ne vas pas pouvoir utiliser d'import de node. Il va falloir parcourir tous les nœuds et les recréer avec le même nom, mais sans namespace, dans le document final.

    Note au passage que je n'ai pas bien compris ta question finale. Mais si tu te demandes s'il n'est pas mal d'avoir plus d'un namespace dans un document XML... Euh, non. Ce sont des namespaces. Des espaces de nom. La raison même de leur existence est la possibilité d'en avoir plus d'un.
    Ne pouvoir avoir qu'un seul namespace, c'est la même chose que ne pas avoir de namespace du tout.
    Bonjour,

    Merci pour ta réponse. Je vois bien l'interet du namespace. Mais dans mon cas, il ne me sert à rien, et m'oblige à faire de grosses modifs dans mon fichier XSL. Alors j'ai trouvé la parade en le mettant à vide, car je n'arrive pas à le supprimer. Voila comment j'ai procéder;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     Dim xmlDoc As New XmlDocument()
                    xmlDoc.Load(xmlFile)
                    xmlDoc.DocumentElement.SetAttribute("dom", dom)
                    xmlDoc.DocumentElement.Attributes.GetNamedItem("xmlns").InnerText = ""
                    xmlDoc.Save(xmlFile)
    Le remove de l'attribut ne marche pas!!! pour info je suis en framework 2.0 aussi.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par hy_dev Voir le message
    Le remove de l'attribut ne marche pas!!!
    Normal, ce n'est pas un attribut c'est un namespace. Je t'accorde que la syntaxe des namespaces est un bricolage qui les fait ressembler à des attributs, mais en général les outils font la différence.

    Je t'ai dit comment procéder. Juste fais-le.

    Citation Envoyé par hy_dev Voir le message
    pour info je suis en framework 2.0 aussi.
    Pour info je ne connais rien à .Net. Mais toutes les biblis XML bien faites font grosso-modo les mêmes choses.
    Et, entre autre, n'offrent aucun mécanisme pour retirer, ou modifier le namespace d'un élément existant (ni pour ajouter un namespace à un élément existant qui n'en a pas.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Réponses: 34
    Dernier message: 23/06/2010, 16h36
  2. [XSLT] Fusion de fichiers XML par XSLT
    Par Invité dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 14/04/2008, 21h26
  3. [JDOM] Fusion de fichiers XML
    Par rptmat57 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 18/07/2007, 11h37
  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, 11h23
  5. [XSLT] Fusion de fichier XML ???
    Par webtheque dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 04/03/2005, 20h13

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