Subject: RE: 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: 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
|