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 :

XSLT pour migration base documentaire


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Homme Profil pro
    Assistant ingénieur en ressources documentaires
    Inscrit en
    Novembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Assistant ingénieur en ressources documentaires
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 22
    Points : 18
    Points
    18
    Par défaut XSLT pour migration base documentaire
    Bonjour,

    Dans le cadre de la préparation de la migration d'une base documentaire, et comme les deux formats en question sont en XML, je me penche du côté du XSLT pour voir ce que ça pourrait donner.
    J'ai choppé du code pour modifier le nom de mes balises vers mon futur format, ça marche bien :
    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
     
    	<xsl:template match="node() | @*">
    		<xsl:copy>
    			<xsl:apply-templates select="@* | node()"/>
    		</xsl:copy>
    	</xsl:template>
     
    	<xsl:template match="toto">
    		<bobo>
    			<xsl:apply-templates select="@* | node()"/>
    		</bobo>
    	</xsl:template>
     
    	<xsl:template match="titi">
    		<bibi>
    			<xsl:apply-templates select="@* | node()"/>
    		</bibi>
    	</xsl:template>
    En revanche, même si j'arrive à concocter une table de conversion correcte, il restera au final des balises non modifiées du format d'origine (et inutiles dans le nouveau format), qu'il faudrait donc que j'exclue. J'avais trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	<xsl:otherwise>
    <xsl:template match="."></xsl:template>
    	</xsl:otherwise>
    mais je n'ai pas de condition choose/when pour l'ouvrir. J'ai vaguement essayé de remplacer mes template:match de l'exemple précédent par des when:test, sans grande conviction ni succès...

    Avant de multiplier les tests, je poste donc pour recueillir des avis plus professionnels (j'en suis pour ma part à mes tous premiers pas dans ce langage...). Merci d'avance !
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Je n'ai pas regardé les fichiers attachés, mais si vous dites ça aide, je verrai.

    Comme vous avez une liste des éléments (toto, titi, ...) à renommer, je suppose vous avez aussi une liste à excluer, comme (soso, sisi, ...). Dans ce cas, vous pouvez simplement incluer un template comme ça pour le faire, pour n'en prendre que les deux premières comme exemple.
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:template match="soso|sisi" />

  3. #3
    Membre à l'essai
    Homme Profil pro
    Assistant ingénieur en ressources documentaires
    Inscrit en
    Novembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Assistant ingénieur en ressources documentaires
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    Ok merci, ça marche au poil et ça m'aide déjà beaucoup. Dans l'idéal j'aurais préféré pouvoir :

    - Modifier les balises à transférer (ça c'est bon)
    - Et ignorer toutes les autres balises, sans forcément avoir à les nommer

    Mais bon je n'ai pas non plus des tonnes de balises, si ça ne se fait pas facilement je peux faire comme tu le montres en les nommant toutes.

    Merci encore,

    Olivier
    (PS : les pièces jointes c'était une erreur de manip', avant que je vois comment insérer du code...)

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 554
    Points : 21 615
    Points
    21 615
    Par défaut
    Mets simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:template match="*">
      <!-- just do nothing -->
    </xsl:template>
    Cela signifie que tu veux effacer toutes les balises.

    Mais si tu as d'autres templates pour indiquer d'autres comportements sur certaines balises, ce sont eux qui s'appliqueront.
    Quand plusieurs templates peuvent s'appliquer à un élément, XSLT résout le plus spécifique. Par exemple, entre "tous les éléments" et "les élément <toto> avec un attribut href, souffrants du mal d'invocation, équipés d'au moins deux enchantements (dont un lytique vert)", il appliquera plutôt le deuxième.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre à l'essai
    Homme Profil pro
    Assistant ingénieur en ressources documentaires
    Inscrit en
    Novembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Assistant ingénieur en ressources documentaires
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    C'est exactement ce genre de petite chose que je cherchais... Un grand merci pour les deux réponses, et un plus général pour l'ensemble du forum ! J'ai pu y trouver tout ce dont j'avais besoin. J'allais faire apposer sur mon alliance un enchantement + 5 en XSL/XSLT, je vais peut-être mettre la commande en attente (on n'est jamais trop prudent...).

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

Discussions similaires

  1. Quels logiciels de modélisation pour une base de données ?
    Par octopus dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 11/06/2023, 16h20
  2. aide pour migration de base cobol vers oracle
    Par patricia_kouassi dans le forum Administration
    Réponses: 2
    Dernier message: 03/10/2007, 14h02
  3. Etude d'une base 8i au pour migration 9i
    Par D.Mounir dans le forum Oracle
    Réponses: 11
    Dernier message: 07/09/2007, 16h20
  4. [ PostgreSQL ] Pbm migration base d'un serveur à un autre
    Par TiSteph dans le forum Administration
    Réponses: 3
    Dernier message: 06/03/2003, 18h04
  5. migration base 4d
    Par ultrakas dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 20/02/2003, 18h10

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