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

Subject: RE: [xsl] Preserve HTML formatting when apply-templates in variabl
From: "Karl J. Stubsjoen" <karl@xxxxxxxxxxxxxxxxxxxx>
Date: Thu, 5 Aug 2004 22:51:39 -0700
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)?:

<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