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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to