AcidBird
Elite
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 attributs, celui qui me pose problème est le line-feed.
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 ?
Autre question, bassée sur le même code, concernant les caractère spéciaux, représenté comme ceci dans l'Xml
l'XSl :
qui me donne, en sortie &#xUnicodeValue; au lieu du caractére spécial voulu.
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 :
Code:
<text line-feed="false" bold="true">some text</text>
Voici le xsl qui se charge du parsing
Code:
<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
Code:
<text base-line="SUPER" symbol-family="BODY_TEXT" symbol-value="00AE"/>
Code:
<xsl:template match="@symbol-value">
<xsl:param name="contents"/>
<![CDATA[&#x]]><xsl:value-of select="."/>;
</xsl:template>