xmlgraphics-fop-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pascal Sancho <pascal.san...@takoma.fr>
Subject Re: template which translates masked HTML?
Date Thu, 01 Apr 2010 12:05:38 GMT
Hi,

This is a pure XSLT question.
you should ask it directly on the XSLT list:
http://www.mulberrytech.com/xsl/xsl-list

Pascal

maxmus a écrit :
> Hi,
> I have the following situation:
> I translate an XML datasource to PDF using an XSL stylesheet and FOP 0.95 .
> I can not pause the process, e.g. for running scripts, nor can I change
> the output in the XML file, so everything has to be done in the XSL
> stylesheet.
>
> In my XML file, there are elements like
> <text1>blablabla&amp;lt;br /&amp;gt;</text1>, which contain masked
HTML tags
> that control
> the formatting (bold, lists...).
> I know how to treat unmasked HTML tags, but not how to translate
> masked HTML tags into a formatting.
>
> My idea was to write a recursive "find-and-replace"-like template, all I can
> do so far
> is delete thos HTML tags.
>
> Does anyone have a template for such a job (only tags like , <ul>, <ol> and
> <li> are needed)?
>
> best regards,
> Maxmus
>
> <xsl:param name="input" />
> 		<xsl:choose>
> 			<xsl:when test="contains($input, '&lt;') and contains($input, '&gt;')">
> 			
> 			
> 				<xsl:choose>
> 				<xsl:when test="string-length(substring-before($input, '&lt;')) &lt;
> string-length(substring-before($input, '&gt;'))"> <!-- < before >  -->
> 					<xsl:value-of select="substring-before($input, '&lt;')" />
> 					
> 					<xsl:choose>
> 						<xsl:when test="string-length(substring-after(substring-before($input,
> '&gt;'), '&lt;')) &lt; 10"><!-- less than 10 characters between the
> brackets: assume it's HTML -->
> 							X <!-- replace with an X to see something was done -->
> 							<xsl:call-template name="rep_HTML">
> 								<xsl:with-param name="input" select="substring-after($input,
> '&gt;')" />
> 							</xsl:call-template>
> 						</xsl:when>
> 						<xsl:otherwise><!-- not HTML: print the tag, but in brackets to know
> that it was replaced properly -->
> 							<xsl:value-of select="'(&lt;)'"/>
> 							<xsl:call-template name="rep_HTML">
> 								<xsl:with-param name="input" select="substring-after($input,
> '&lt;')" />
> 							</xsl:call-template>
> 						</xsl:otherwise>
> 					</xsl:choose>
>
> 				</xsl:when>
> 				<xsl:when test="string-length(substring-before($input, '&lt;')) &gt;
> string-length(substring-before($input, '&gt;'))"><!-- > before <  -->
> 				
> 					<xsl:value-of select="substring-before($input, '&gt;')" />
> 					<xsl:value-of select="'(&gt;)'"/>
> 					<xsl:call-template name="rep_HTML">
> 						<xsl:with-param name="input" select="substring-after($input, '&gt;')"
> />
> 					</xsl:call-template>
> 				</xsl:when> 
> 				</xsl:choose>
> 				
> 			</xsl:when>
> 			<xsl:otherwise>
> 				<xsl:value-of select="$input" />
> 			</xsl:otherwise>
> 		</xsl:choose>
> 	</xsl:template>
>
>
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org


Mime
View raw message