Précédent   Forum des professionnels en informatique > Autres langages > XML/XSL et SOAP
XML/XSL et SOAP Forum d'entraide sur XML et SOAP. Avant de poster -> FAQ XML, Sources XML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/12/2011, 12h15   #1
Invité de passage
 
Inscription : novembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2011
Messages : 4
Points : 0
Points : 0
Par défaut rechercher modifier texte avec xslt

Bonjour,
Je suis débutante en xslt et je suis en train de faire une feuille de style xslt pour un fichier xml généré. Je voudrais modifier le style d'une partie de mon xml qui sont en fait des commentaires de code et dnc sont reconnaissables par:
Code :
1
2
3
4
5
6
7
8
9
<Conditions>
Blablabla
//Ici voila un commentaire sur une seule ligne
/*La les commentaires sont sur deux lignes mais
*Pour chaque ligne
*On a un asterique
*Et là on finit*/
Encore Blablabla
</Conditions>
Donc voila ce que ça donne, quelqu'un saurait comment je pourrais faire ça svp? Merci!
CouicCouic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 12h57   #2
Expert Confirmé Sénior
 
Inscription : septembre 2004
Messages : 5 092
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 092
Points : 7 019
Points : 7 019
Citation:
Envoyé par CouicCouic Voir le message
Donc voila ce que ça donne, quelqu'un saurait comment je pourrais faire ça svp? Merci!
Peut-être, si tu nous disais qu'est-ce que tu veux transformer en quoi.
thelvin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 17h50   #3
Membre à l'essai
 
Inscription : août 2010
Messages : 12
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 12
Points : 22
Points : 22
Bonjour,

Sachant qu'on ne sait pas vraiment ce que doit être le résultat,
je te montre un exemple avec une boucle qui permet de supprimer
les lignes avec "//" et les lignes entre "/*" et "*/".

Code :
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
51
52
53
54
55
56
57
58
59
 
 <xsl:template match="Conditions">
        <Conditions>
            <xsl:call-template name="loop">
                <xsl:with-param name="position">1</xsl:with-param>
                <xsl:with-param name="tokens" select="tokenize(.,'\n')[.!='']"/>
            </xsl:call-template>
        </Conditions>
    </xsl:template>
 
    <xsl:template name="loop">
        <xsl:param name="position"/>
        <xsl:param name="tokens"/>
        <xsl:for-each select="subsequence($tokens,number($position),1)">
            <xsl:choose>
                <xsl:when test="starts-with(normalize-space(.),'//')">
                    <xsl:call-template name="loop">
                        <xsl:with-param name="position" select="string(number($position) + 1)"/>
                        <xsl:with-param name="tokens" select="$tokens"/>
                    </xsl:call-template>
                </xsl:when>
                <xsl:when test="starts-with(normalize-space(.),'/*')">
                    <xsl:call-template name="loop2">
                        <xsl:with-param name="position" select="string(number($position) + 1)"/>
                        <xsl:with-param name="tokens" select="$tokens"/>
                    </xsl:call-template>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:value-of select="."/>
                    <xsl:text> &#xA; </xsl:text>
                    <xsl:call-template name="loop">
                        <xsl:with-param name="position" select="string(number($position) + 1)"/>
                        <xsl:with-param name="tokens" select="$tokens"/>
                    </xsl:call-template>
                </xsl:otherwise>
            </xsl:choose>
        </xsl:for-each>
    </xsl:template>
 
    <xsl:template name="loop2">
        <xsl:param name="position"/>
        <xsl:param name="tokens"/>
        <xsl:for-each select="subsequence($tokens,number($position),1)">
            <xsl:choose>
                <xsl:when test="ends-with(normalize-space(.),'*/')">
                    <xsl:call-template name="loop">
                        <xsl:with-param name="position" select="string(number($position) + 1)"/>
                        <xsl:with-param name="tokens" select="$tokens"/>
                    </xsl:call-template>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:call-template name="loop2">
                        <xsl:with-param name="position" select="string(number($position) + 1)"/>
                        <xsl:with-param name="tokens" select="$tokens"/>
                    </xsl:call-template>
                </xsl:otherwise>
            </xsl:choose>
        </xsl:for-each>
    </xsl:template>
zeh0pe est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h09.


 
 
 
 
Partenaires

Hébergement Web