Bonjour,
je travaille sur le parsing d'un document Xml afin de générer un fichier fo et il ya 2 petites choses qui m'échappent
l'élément à parser :
l'élément text peut avoir plusieurs attribut, celui qui me pose problème est le line-feed.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <text line-feed="false" bold="true">some text</text>
Voici le xsl qui se charge du parsing
Quelqu'un pourrait-il m'expliquer pourquoi le test <xsl:if test="@line_feed = 'true'"><fo:block></fo:block></xsl:if> ne fonctionne pas ?
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 <xsl:template match="text"> <xsl:call-template name="formatting-text"> <xsl:with-param name="contents" select="."/> <xsl:with-param name="attributes" select="@*[name() != 'line_feed']"/> </xsl:call-template> <xsl:if test="@line_feed = 'true'"><fo:block></fo:block></xsl:if> </xsl:template> <xsl:template name="formatting-text"> <xsl:param name="contents"/> <xsl:param name="attributes" select="false()"/> <fo:inline> <xsl:for-each select="$attributes"> <xsl:apply-templates select="."> <xsl:with-param name="contents" select="."/> </xsl:apply-templates> </xsl:for-each> <xsl:value-of select="$contents"/> </fo:inline> </xsl:template>
Autre question, bassée sur le même code, concernant les caractère spéciaux, représenté comme ceci dans l'Xml
l'XSl :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<text base-line="SUPER" symbol-family="BODY_TEXT" symbol-value="00AE"/>
qui me donne, en sortie &#xUnicodeValue; au lieu du caractére spécial voulu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <xsl:template match="@symbol-value"> <xsl:param name="contents"/> <![CDATA[&#x]]><xsl:value-of select="."/>; </xsl:template>
Partager