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

XML/XSL et SOAP Discussion :

supprimer les répetitions et créer des raccourcis vers un fichier externe


Sujet :

XML/XSL et SOAP

  1. #1
    Membre à l'essai
    Homme Profil pro
    R&D Informatique
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : R&D Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Points : 10
    Points
    10
    Par défaut supprimer les répetitions et créer des raccourcis vers un fichier externe
    Bonjour,

    Je suis un novice dans le monde XML ce qui implique plein de pbs . Le premier (et je suis sûr que ça ne sera pas le dernier ) est le suivant :

    Je dispose d'un fichier XML (un grand fichier) dans lequel y a un certain type d'éléments (qui possèdent des sous éléments + attributs) qui se répètent assez souvent dans le fichier (les blocs constitués de ces éléments et de ses s/éléments). Mon but est de supprimer ces blocs de ce fichier et mettre à leur place des liens ou quelque chose dans le genre qui pointent vers un autre fichier. ce dernier contiendra ces éléments sous forme de liste. Je vais essayer de schématiser mon problème.

    <?xml ...?>
    <blabla>
    <bloblo>
    <A>
    ...
    </A>
    <B>
    ...
    </B>
    <A>
    ...
    </A>
    <C>
    ...
    </C>
    J'aimerais transformer cette structure pour qu'elle ressemble à ceci :
    <?xml ...?>
    <blabla>
    <bloblo>
    <lien vers bloc_de_A/>
    <lien vers bloc_de_B/>
    <lien vers bloc_de_A/>
    <lien vers bloc_de_C>

    où bloc_de_A, bloc_de_B et bloc_de_C figurent maintenant dans un autre fichier sous la forme
    <?xml ...>
    <A>...</A>
    <B>...</B>
    <C>...</C>

    Est ce que c'est possible de faire cette manip ? Merci d'avance pour toute votre aide.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Personne ne t'interdit de le faire, en tout cas.
    Mais les mécanismes d'inclusion en XML ne sont pas très bien gérés, et les programmes qui lisent tes XMLs devront donc le gérer eux-mêmes.

    Le format le plus proche de ce genre de choses est XInclude, qui, donc, n'est généralement pas géré par les parseurs XML et doit être géré par les programmes qui le lisent.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Homme Profil pro
    R&D Informatique
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : R&D Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Personne ne t'interdit de le faire, en tout cas.
    Mais les mécanismes d'inclusion en XML ne sont pas très bien gérés, et les programmes qui lisent tes XMLs devront donc le gérer eux-mêmes.

    Le format le plus proche de ce genre de choses est XInclude, qui, donc, n'est généralement pas géré par les parseurs XML et doit être géré par les programmes qui le lisent.
    Ok thelvin et merci pour ta réponse, je vais aller vite me documenter sur XInclude.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 17
    Points : 23
    Points
    23
    Par défaut
    Bonjour,

    Pour illustrer la réponse de Thelvin, je vous propose d'essayer ceci :

    1) le fichier racine (racine.xml) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?xml ...?>
    <blabla>
    <bloblo>
    <xi:include 
        xmlns:xi="http://www.w3.org/2001/XInclude"
        href="fichier_bloc_des_A.xml"/>
    <xi:include 
        xmlns:xi="http://www.w3.org/2001/XInclude"
        href="fichier_bloc_des_B.xml"/>
    etc...
    2) fichier_bloc_des_A.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <?xml ...?>
    <A> ... </A>
    Idem pour les autres fichiers.

    Personnellement, j'utilise ensuite XMLLINT pour reconstituer le fichier complet avant les traitements, en première passe :

    xmllint --xinclude racine.xml > resultat.xml

    Le fichier resultat.xml est alors utilisable pour les traitements définitifs sur le texte complet.

    Sur XMLLINT :
    http://blog.touv.fr/2005/06/xmllint-...-pour-les.html

    HTH

  5. #5
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Bonjour midi.3m,

    pour gérer XInclude, tu peux utiliser :

    * le moteur XIncluder
    * le processeur Xerces prends en charge ce langage depuis la version 2.5 si je me souvient bien,
    * ou encore Cocoon.
    Article : Installation de Cocoon
    Je ne réponds pas aux MP à caractère technique.

  6. #6
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    Sinon il est possible d'utiliser des entités pour ça :

    Fichier d'entité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <!-- Contenu du lien -->
    <!ENTITY lien1 "<un_code><xml/></un_code>">
    Fichier XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <!-- Référencement de ton fichier d'entités -->
    <!DOCTYPE TA_DTD SYSTEM "./CHEMIN_VERS_TA.DTD" [
    <!ENTITY % liens SYSTEM "./LIENS.ENTITIES">
    %liens;
    ]>
     
    <root>
      <!-- Utilisation du lien -->
      <element>&lien1;</element>
    </root>

Discussions similaires

  1. [batch] Comment créer un raccourci vers un fichier ?
    Par koKoTis dans le forum FAQs Windows
    Réponses: 1
    Dernier message: 13/11/2013, 20h40
  2. [Débutant] créer un raccourci vers un fichier
    Par farid salmi dans le forum VB.NET
    Réponses: 0
    Dernier message: 20/05/2012, 14h24
  3. Créer des raccourcis claviers pour les events.
    Par christophertux dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 10/08/2009, 16h10
  4. Créer des renvois vers un fichier texte
    Par OUaOU dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 20/10/2006, 13h37
  5. Créer un raccourci vers un logiciel et un fichier
    Par romram dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 12/05/2005, 15h32

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