Bonjour à tous,
Voilà je souhaite simplifier un fichier xml à l'aide de XSLT. Jusque là tout va bien seulement j'ai un soucis pour récupérer un élément imbriqué, je m'explique :
J'ai un code xml du style :
Et un code XSLT du style :
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 <p rsidR="00EA21B1" rsidRPr="00883B7C" rsidRDefault="00EA21B1" rsidP="00883B7C"> <pPr> <pStyle val="TitreEtude"/> </pPr> <r rsidRPr="00883B7C"> <rPr> <lang w:val="en-GB"/> </rPr> <t>IV. Smoothing effect of PULPACTYL</t> </r> <r w:rsidRPr="00883B7C"> <rPr> <rStyle w:val="Exposant"/> </rPr> <t>®</t> </r> </p>
En fait c'est la partie
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 <xsl:template match="document/body"> <body> <!-- Pour chaque paragraphe trouvé --> <xsl:for-each select="p"> <xsl:choose> <!-- Vérifie si la balise existe --> <xsl:when test="pPr/pStyle"> <!-- Se positionne à l'endroit souhaité dans l'arbre actuel --> <xsl:apply-templates select="pPr/pStyle" /> </xsl:when> <!-- Si la balise n'est pas trouvé --> <xsl:otherwise> <!-- Création d'un élément avec comme nom le style par défaut --> <Style_Defaut> <!-- Se positionne sur la balise contenant le texte souhaité --> <xsl:apply-templates select="r/t" /> </Style_Defaut> </xsl:otherwise> </xsl:choose> </xsl:for-each> </body> </xsl:template> <xsl:template match="pPr/pStyle"> <!-- Création d'un élément avec comme nom le style utilisé --> <xsl:element name="{@val}"> <xsl:choose> <xsl:when test="r/rPr/rStyle"> <xsl:element name="{@val}"> <!-- Se positionne sur la balise contenant le texte souhaité --> <xsl:apply-templates select="../t" /> </xsl:element> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="../../r/t" /> </xsl:otherwise> </xsl:choose> </xsl:element> </xsl:template>de mon code xml qui me pose problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <rPr> <rStyle w:val="Exposant"/> </rPr> <t>®</t>
En effet je souhaiterai pouvoir construire un fichier du type :
Mais je n'arrive pas à reproduire l'élément <Exposant> et j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <TitreEtude> IV. Smoothing effect of PULPACTYL<Exposant>®</Exposant> </TitreEtude>
Est-ce que quelqu'un peut m'aider à ce sujet ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <TitreEtude> IV. Smoothing effect of PULPACTYL® </TitreEtude>
Merci d'avance pour vos réponses.
Partager