RE: [xsl] Preserve HTML formatting when apply-templates in variabl

Subject: RE: [xsl] Preserve HTML formatting when apply-templates in variabl
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Fri, 6 Aug 2004 07:54:52 +0100
> Wow!  Some solution (that I came up with).  The use of 
> xsl:text and cdata
> elements is quite complex... would hate to apply something 
> like this to a
> serious template match.  Anyhow... is this the best way to 
> accomplish what
> I'd like to accomplish (and it works)?:

No, this is an appalling way to use XSLT. Go back to your previous attempt
and find out where your mistake was.

Michael Kay


> 
> <xsl:template match="review">
>   <xsl:text><![CDATA[<img src="/images/arrow_2.jpg" 
> alt="]]></xsl:text>
> <xsl:value-of select="title"/><xsl:text><![CDATA[" class="padr"/>]]>
> </xsl:text>
> 	<xsl:text><![CDATA[<h3 class="txt_1 inline
> bold">]]></xsl:text><xsl:value-of
> select="title"/><xsl:text><![CDATA[</h3>]]></xsl:text>
> 	<xsl:text><![CDATA[<p class="txt_1">]]></xsl:text><xsl:value-of
> select="content"/><xsl:text><![CDATA[</p>]]></xsl:text>
> 
>     <!-- link for more content -->
>     <xsl:text><![CDATA[<div class="marginb">
>     <a href="]]></xsl:text><xsl:value-of
> select="link"/><xsl:text><![CDATA[>more <img src="images/arrow_2.jpg"
> alt="]]></xsl:text><xsl:value-of select="title"/><xsl:text><![CDATA["
> width="13" height="7" border="0"/></a>]]></xsl:text>
>     <xsl:text><![CDATA[</div>]]></xsl:text>
> 
> </xsl:template>
> 
> 
> 
> 
> 
> -----Original Message-----
> From: Karl J. Stubsjoen [mailto:karl@xxxxxxxxxxxxxxxxxxxx]
> Sent: Thursday, August 05, 2004 10:21 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Preserve HTML formatting when apply-templates 
> in variabl
> 
> 
> Hi there,
> I am trying to get the result of a template match as 
> preserved HTML in my
> variable.  I'm not to sure what is happening to the HTML, but 
> I think it is
> just getting stripped.
> The variable which should retrieve the HTML from the matched 
> template is
> "ui_review".  The template "review" is responsible for 
> generating the HTML.
> 
> Here is what I have:
> 
> <xsl:template match="uireview">
>    <xsl:variable name="ui_review">
>     	<xsl:apply-templates select="review"/>
>    </xsl:variable>
> 
>    <xsl:call-template name="ui_content">
>      <xsl:with-param name="title">UI Review</xsl:with-param>
>      <xsl:with-param name="content" select="$ui_review"/>
>      <xsl:with-param name="height">300</xsl:with-param>
>    </xsl:call-template>
> 
> </xsl:template>
> 
> <xsl:template match="review">
> 	<img src="/images/arrow_2.jpg" alt="{title}" class="padr"/>
> 	<h3 class="txt_1 inline bold"><xsl:value-of 
> select="title"/></h3>
> 	<p class="txt_1"><xsl:value-of select="content"/></p>
> 
>     <!-- link for more content -->
>     <div class="marginb">
>     <a href="{link}">more <img src="images/arrow_2.jpg" alt="{title}"
> width="13" height="7" border="0"/></a>
>     </div>
>     <!-- horizontal "dashed" div tag -->
>     <xsl:if test="not(position()=last())">
>     	<div class="hr_1px_dashed" />
>     </xsl:if>
> 
> </xsl:template>
> 
> 
> ========= end example ==========
> 
> Thanks for the help!
> Karl

Current Thread