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 :

problème de récursivité d'un fichier XSL


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2010
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 15
    Points : 12
    Points
    12
    Par défaut problème de récursivité d'un fichier XSL
    ce code est capable de transformer un fichier XML en un fichier java:
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     	<xsl:output method="text"/>
     <xsl:template match="/">
     	public class <xsl:value-of select="classes/@name"/>
    	{
    		<xsl:apply-templates select="//attribut" mode="instanceVariable"/>
     
    		public <xsl:value-of select="classes/@name"/>()
    		{
    		}
     
    		<xsl:apply-templates select="//attribut" mode="accessor"/>
    		<xsl:apply-templates select="//attribut" mode="mutator"/>
    	}
    </xsl:template>
    <xsl:template match="Import">
    	import <xsl:value-of select="."/>;
    </xsl:template>
     <xsl:template match="attribut" mode="instanceVariable">
    		private <xsl:value-of select="@type"/><xsl:text> </xsl:text><xsl:value-of select="@name"/>;
    </xsl:template>
     <xsl:template match="attribut" mode="accessor">
    		public <xsl:value-of select="@type"/> get<xsl:call-template name="initCap">
    					<xsl:with-param name="x" select="@name"/>
    				</xsl:call-template>()
    		{
    			return <xsl:value-of select="@name"/>;
    		}
    </xsl:template>
    <xsl:template match="attribut" mode="mutator">
    		public void set<xsl:call-template name="initCap">
    					<xsl:with-param name="x" select="@name"/>
    				</xsl:call-template>(<xsl:value-of select="@type"/> the<xsl:call-template name="initCap">
    					<xsl:with-param name="x" select="@name"/>
    				</xsl:call-template>)
    		{
    			<xsl:value-of select="@name"/> = the<xsl:call-template name="initCap">
    				<xsl:with-param name="x" select="@name"/>
    			</xsl:call-template>;
    		}
    </xsl:template>
     <xsl:template name="initCap">
    	<xsl:param name="x"/>
    	<xsl:value-of select="translate(substring($x,1,1)
    							,'abcdefghijklmnopqrstuvwxyz'
    							,'ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
    	<xsl:value-of select="substring($x,2)"/>
    </xsl:template>
     </xsl:stylesheet>
    mon problème c'est que je veux ajouter une fonction de récursivité afin de crée plusieurs fichiers si on a plusieurs classe dans mon fichier XML. Voici le XML que j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet href="JavaBean.xsl" type="text/xsl"?>
    <classes name="Book">
     	<class>
    		<attribut name="title" type="String"/>
    		<attribut name="page" type="String"/>
    		<attribut name="category" type="String"/>
     	</class>
    </classes>
    Et je veux que mon fichier XSL sera capable de générer la classe "Book" et "Writer" si je l'applique sur ce fichier:
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet href="JavaBean.xsl" type="text/xsl"?>
    <librairie>
    <classes name="Book">
     	<class>
    		<attribut name="title" type="String"/>
    		<attribut name="page" type="String"/>
    		<attribut name="category" type="String"/>
     
    	</class>
    </classes>
    <classes name="Writer">
     
    	<class>
    		<attribut name="first_name" type="String"/>
    		<attribut name="Last_name" type="String"/>
     
    	</class>
    </classes>
    </librairie>
    Merci

  2. #2
    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
    Il y'a déjà un post qui traite de ça (plus ou moins) : http://www.developpez.net/forums/d10...formation-xsl/

    Apparement il faudrait utiliser XSLT2 pour le faire. Ce qui est sûr c'est que ce n'est pas possible en XSLT1.

    Ne connaissant pas la version 2 de XSLT je ne peux pas t'aider d'avantage par contre.

  3. #3
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    ce n'est effectivement pas prévu dans XSLT 1.0 et c'est implémenté dans XSLT 2.0, mais il existe des extensions à XSLT dans les processeurs les plus répandus qui permettent de le faire. Voir la FAQ XML à ce sujet.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

Discussions similaires

  1. problème de mise en forme du fichier xsl en html et balises xpath
    Par massenoire dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 01/08/2011, 12h23
  2. Problème d'affichage d'un fichier xml avec un xsl à cause du xmlns
    Par cocoaparis dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 23/03/2011, 14h48
  3. Y a t'il un problème avec mon fichier xsl?
    Par missllyss dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 03/06/2008, 10h03
  4. [XSLT]Probléme avec une fonction php dans un fichier xsl!
    Par Mo_Poly dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 29/10/2007, 07h32
  5. [XSL] Problème de parse d'un fichier avec Namspaces
    Par mpereg dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 20/02/2007, 19h24

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