[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: Re: preserving html tags

Subject: RE: Re: preserving html tags
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 1 Nov 2006 17:56:53 -0000
pass html tags xslt
Normally the answer would be to copy the content using copy-of rather than
value-of to retain the tree structure. But trimming the text while retaining
the tree structure is a bit more of a challenge. It needs a recursive walk
of the subtree, passing the length of text processed so far as a parameter
to each template, and terminating when this length reaches your threshold.

Or you could approximate by doing this only one level deep, which is a fair
bit easier.

Concerning your title, you really need to understand that there are no tags
involved here. You are processing a tree of element and text nodes, and you
won't solve the problem unless you understand it in those terms.

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: Karl [mailto:call14@xxxxxxxxx] 
> Sent: 01 November 2006 16:51
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject:  Re: preserving html tags
> 
> My problem is related to rendering html content like 
> "content<b>bold</b>...contents" as it in xml into the output 
> html. I am using <apply-templates> to select content but 
> later use <value-of> to trim it. Suspect <value-of> removing 
> the html tags (not sure), but are there any other way to get 
> proper results?
>  
> Basically my xml looks something like
> 
> 		<Introduction>
> 			<Title>Introduction</Title>
> 			<Paragraph>In this session we 
> <sub>this</sub><b>Bold</b> take a closer look at what is 
> meant by strategy. The classical approach to strategic 
> management  ... big para content
>  			</Paragraph>
>  			<Paragraph/>
> 		</Introduction>
> 		<Section/>
> 
> I am trying to output 1st para of certain elements & limit 
> the para content to certain char limit. so, in my xsl 
> 
> 		<xsl:for-each select="//Introduction | 
> //Session/Section/SubSection | //References | //Acknowledgements">
> 			<xsl:variable name="titleContent">	
> 			
> 				<xsl:value-of select="name()"/>
> 			</xsl:variable>
> 			<xsl:variable name="paraContent">
> 				<xsl:if test=".//Paragraph[1] 
> and (name() = 'SubSection' or
> name() = 'Introduction')">
> 					<xsl:apply-templates 
> select=".//Paragraph[1]"/>
> 				</xsl:if>
> 			</xsl:variable>
> 			<p class="paradefault">
> 				<xsl:call-template name="trimPara">
> 					<xsl:with-param 
> 
> name="stringLenRequired">200</xsl:with-param>
> 					<xsl:with-param 
> name="stringInput" 
> 
> select="$paraContent"/>
> 				</xsl:call-template>
> 			</p>
> 		</xsl:for-each>
> 
> and then ...
> 
> 	<xsl:template name="trimPara">
> 		<!-- pass the string to be cropped with 
> required string length -->
> 		<xsl:param name="stringLenRequired"/>
> 		<xsl:param name="stringInput"/>
> 		<xsl:value-of 
> 
> select="substring($stringInput,1,number($stringLenRequired))"/>
> 		<xsl:value-of 
> 
> select="substring-before(concat(substring($stringInput,number(
> $stringLenRequired)+1,number($
> 
> stringLenRequired) +20),' ' ),' ')"/> <!-- to make it a full word -->
> 		<xsl:if test="string-length($stringInput) > 
> 
> number($stringLenRequired)">...</xsl:if>
> 	</xsl:template>
> 
> 
> This results in an html output having no <b>, <sup> or any 
> other html tags - while the content within them gets thro. I 
> dont know where those html tags gets striped. Pls let me know 
> how can this be fixed.
> 
> Thanks in adv.
> karl
> 
> Send instant messages to your online friends 
> http://uk.messenger.yahoo.com 

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Cast Your Vote

We need your help – Vote for DataDirect XML Products!

  • Best SOA or XML site

Winners and finalists announced at SOA World Conference in November.

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2007 All Rights Reserved.