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]Transformer XSL avec du XSL


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 8
    Points
    8
    Par défaut [XSLT]Transformer XSL avec du XSL
    Bonjour tout le monde,

    Je suis nouveau aussi, et voilà ma première question :

    Est ce qu'on peut transformer un XSL avec du XSL. A priori, c'est possible (puisque xsl est en finalité un xml), mais je ne voix pas trop comment faire.

    Est ce que quelqu'un peut m'aider avec un exemple.

    Merci beaucoup.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Oui tu peux sans pb, maintenant tu ne précises pas en quoi tu souhaites le transformer.

    Tu as juste à utiliser le namespace de xsl pour "matcher" les élement du xsl en entrée.
    Et si tu fais du xsl en sortie, il faudrat utiliser des xsl:element pour créer tes noeuds pour éviter que le processeur xsl ne les interprete.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Bonjour Morbo,

    La transformation que je veux faire, consiste à ajouter des conditions qui vont interdir l'accès à certaine partie du document XML que le fichier xsl va traiter. Je m'explique par un exemple.

    Disons que je veux interdire l'accès au dernier attribut d'une balise XXX par exemple :

    Donc si j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="/XXX/@attribut/>
    je doit transformer ça en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="/XXX/@attribut[position() != last()]/>
    pour vérifier que ce n'est pas le dernier attribut (et si c'est le cas on n'aura pas d'affichage).

    Sinon, comment faire pour utiliser le namespae de xsl pour matcher les élément du xsl en entrée. Déjà comment faire pour avoir un xsl en entrée.

    Si tu peux essaye de m'illustrer ça avec un exmple.

    Merci bcp

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Exemple :
    xsl (xml source) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:template match="/">
    		<xsl:value-of select="/XXX/@attribut"/>
    		<xsl:value-of select="/yyy/@attribut2"/>
    		<xsl:value-of select="/yyy/zzz"/>
    	</xsl:template>
    </xsl:stylesheet>
    xsl de transformation :
    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
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output method = "xml"  version="1.0" encoding="utf-8" omit-xml-declaration="no" standalone="no" indent="yes"  />
    	<!-- Identity transformation template -->			
    	<xsl:template match="/ | @* | * | comment() | processing-instruction() | text()"> 
    		<xsl:copy> 
    			<xsl:apply-templates select="@* | * | comment() | processing-instruction() | text()"/> 
    		</xsl:copy> 
    	</xsl:template> 
     
     
    	<xsl:template match="xsl:value-of">
    		<xsl:element name="xsl:value-of">
    			<xsl:attribute  name = "select" ><xsl:value-of select="concat(@select,'[position() != last()]')"/></xsl:attribute>
    		</xsl:element>
    	</xsl:template>
    </xsl:stylesheet>
    Résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
    <xsl:value-of select="/XXX/@attribut[position() != last()]" />
    <xsl:value-of select="/yyy/@attribut2[position() != last()]" />
    <xsl:value-of select="/yyy/zzz[position() != last()]" />
    </xsl:template>
    </xsl:stylesheet>

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Je vais tester merci bcp.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Merci ça marche à merveille.

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

Discussions similaires

  1. [XSLT]Problème d'utilisation de XSL avec fichier GPX.
    Par robiwan dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/05/2010, 14h17
  2. [XSLT] Transformer un xml en xsl
    Par didine6393 dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 28/10/2009, 18h19
  3. [XSLT] Transformation valide avec Firefox / incomplète avec IE
    Par prgasp77 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 18/02/2008, 14h06
  4. Réponses: 10
    Dernier message: 26/10/2006, 12h25
  5. [XSLT]pb application template feuille XSL incluse dans XSL
    Par snoop dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 26/06/2006, 16h09

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