<cfsavecontent variable="strHTML">
<h1>
Thank you for your purchase!
</h1>
<p>
Invoice number: <strong>12345</strong><br />
Price: <strong>$19.95</strong>
</p>
<hr />
<h2>
Purchased Products
</h2>
<table cellspacing="5" border="1">
<tr>
<td>
Muscle Girls Gone Wild
</td>
<td>
$10.95
</td>
</tr>
<tr>
<td>
Female Muscle - The Definitive Guide
</td>
<td>
$9.00
</td>
</tr>
</table>
<hr />
<p>
If you have any questions about your order please
contact us at
<a href="mailto:orders@amazon.com">orders@amazon.com</a>.
</p>
</cfsavecontent>
<cfsavecontent variable="strXSLT">
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:transform
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable
name="new-line"
select="' '"
/>
<xsl:variable
name="new-lines"
select="concat( $new-line, $new-line )"
/>
<xsl:template match="*">
<xsl:apply-templates select="text()|*" />
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="normalize-space( . )" />
</xsl:template>
<xsl:template match="h1">
<xsl:apply-templates select="text()|*" />
<xsl:value-of select="$new-line" />
<xsl:text>---------------------------------</xsl:text>
<xsl:value-of select="$new-lines" />
</xsl:template>
<xsl:template match="h2|h3|h4|h5">
<xsl:text>## </xsl:text>
<xsl:apply-templates select="text()|*" />
<xsl:value-of select="$new-lines" />
</xsl:template>
<xsl:template match="p|blockquote|li">
<xsl:apply-templates select="text()|*" />
<xsl:value-of select="$new-lines" />
</xsl:template>
<xsl:template match="table">
<xsl:apply-templates select="*" />
<xsl:value-of select="$new-line" />
</xsl:template>
<xsl:template match="tr">
<xsl:apply-templates select="*" />
<xsl:value-of select="$new-line" />
</xsl:template>
<xsl:template match="td">
<xsl:value-of select="'[ '" />
<xsl:apply-templates select="text()|*" />
<xsl:value-of select="' ]'" />
</xsl:template>
<xsl:template match="strong|em|span|a">
<xsl:text> </xsl:text>
<xsl:value-of select="text()" />
</xsl:template>
<xsl:template match="hr" name="hr">
<xsl:text>. . . . . . . . . . . . . . . . .</xsl:text>
<xsl:value-of select="$new-lines" />
</xsl:template>
<xsl:template match="br">
<xsl:value-of select="$new-line" />
</xsl:template>
</xsl:transform>
</cfsavecontent>
<cfset strTextOnly = XmlTransform(
("<data>" & strHTML & "</data>"),
Trim( strXSLT )
) />
<cfset strTextOnly = Trim(
REReplace(
strTextOnly,
"<[^>]*>",
"",
"one"
)
) />
<cfset WriteOutput( strTextOnly ) />