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] Règle par défaut [Débutant(e)]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 15
    Points
    15
    Par défaut [XSLT] Règle par défaut
    Bonjour à tous,

    je ne trouve pas de solution à un problème qui doit être un grand classique. Je n'utilise pas toutes les balises de mon fichier XML de départ. Or XSLT affiche le contenu de ces dernières dans le fichier XML résultat.

    Dans mon cas, je n'utilise que les /Archive/ContentDescription/ContentDescriptive/KeywordType et /Archive/ContentDescription/ContentDescriptive/KeywordContent du fichiers XML de départ, tout le reste est à oublier.

    mon fichier xsl :
    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
    32
    <?xml version='1.0' encoding='UTF-8'?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:abcd="urn:fr:cache"  >
     
    <xsl:output method="xml" indent="yes" />
     
    <xsl:template match="/abcd:Archive">
          <xsl:apply-templates select="ContentDescription" />
    </xsl:template>
     
    <xsl:template match="ContentDescription">
      <DOCUMENT>
          <xsl:apply-templates select="ContentDescriptive" />
      </DOCUMENT>
    </xsl:template>
     
    <xsl:template match="ContentDescriptive">
        <xsl:variable name="toto"><xsl:apply-templates select="KeywordType" /></xsl:variable>
        <xsl:element name ="{$toto}">
           <xsl:apply-templates select="KeywordContent" />
        </xsl:element>
    </xsl:template>
     
    <xsl:template match="KeywordType">
          <xsl:value-of select="." />
    </xsl:template>
     
    <xsl:template match="KeywordContent">
          <xsl:value-of select="." />
    </xsl:template>
     
    </xsl:stylesheet>
    D'avance, merci
    Pierre LM

  2. #2
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Je pense que vous vous retrouvez avec l'activation du template par défaut. Voilà pourquoi je mets souvent en fin de feuille XSLT quelque chose du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:template match="*[name()!='toto' and name()!='titi' and ...]"/>
    pour couper court à tout débordement

Discussions similaires

  1. afficher la règle de transparence des couches par défaut?
    Par a666a666 dans le forum IGN API Géoportail
    Réponses: 5
    Dernier message: 25/01/2011, 19h54
  2. [XSLT] CDATA par défaut lors d'une transformation xsl
    Par thierry_b dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 16/12/2008, 13h57
  3. Réponses: 1
    Dernier message: 27/04/2007, 15h03
  4. Réponses: 3
    Dernier message: 13/12/2006, 09h19
  5. [XSLT] Variable par défaut ou non dans un 'IF'
    Par Johnbob dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 25/01/2004, 17h00

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