2017-01-06 1 views
0

J'utilise actuellement XSL pour un projet de travail et je suis confronté à un problème.XSL-FO | FO: Les tags sont supprimés

Je suis en train de lire des valeurs pour une base de données qui ressemblent à ceci:

<fo:block font-weight='bold>hello</fo:block> 

et il semble que XSL est décapage l'élément <fo:block> parce qu'il me donne texte seulement (je ne vois Bonjour, pas gras, et il ne se comporte pas comme un élément de bloc). J'ai l'impression que, d'une manière ou d'une autre, XSL interprète la valeur lue à partir de la base de données comme une chaîne, et dépouille les balises <fo>, laissant mon texte uniquement.

Une idée de ce qui pourrait être fait pour que mon style soit préservé?

(Il est évident que cet exemple a été simplifié, le texte à afficher est plus longue que celle)

EDIT: Self a répondu pour les futures références

+0

Quelle technologie utilisez-vous pour compiler le fichier '.fo'? Avez-vous accès à ce fichier avant que le processeur ne crée la sortie? – Boldewyn

+1

De plus, liez-vous le préfixe 'fo' à XSL-FO? Vérifiez à nouveau que votre problème ressemble exactement au processeur FO en l'ignorant à cause d'espaces de noms incorrects. – Boldewyn

+0

@Boldewyn oui il est préfixé, le reste de mon modèle est écrit en utilisant 'fo', seule la partie lue de la DB semble être un problème –

Répondre

0

Comme d'abord je voulais vous remercier tous d'avoir pris le temps de me répondre. Je suis très très très heureux de voir que la communauté SO est si forte.

J'ai résolu mon problème de cette façon:

<xsl:for-each select="/fulfill-list/ticket-list/list-item/eventTicketContent/xmlTicketContent/ticketdescription/node()"> 
     <xsl:copy-of select="child::node()" /> 
    </xsl:for-each> 

Je ne sais pas vraiment ce qui est arrivé sous le capot et pourquoi les étiquettes <fo> ont été enlevés, mais ils étaient. Looping à travers chacun d'eux et en utilisant <xsl:copy-of> fait l'affaire.

Encore une fois, un grand merci à vous tous!

+0

besoin de ce 'for-each' avec un' copy-of 'imbriqué, vous pouvez aussi utiliser un seul '' directement. –

0

Sur la base des commentaires que vous souhaitez modifier <xsl:value-of select='/fulfill-list/ticket-list/list-item/eventTicketConte‌​nt/xmlTicketContent/‌​ticketdescription'/>-<xsl:copy-of select='/fulfill-list/ticket-list/list-item/eventTicketConte‌​nt/xmlTicketContent/‌​ticketdescription'/> (ou peut-être <xsl:copy-of select='/fulfill-list/ticket-list/list-item/eventTicketConte‌​nt/xmlTicketContent/‌​ticketdescription/node()'/>).