Subject: RE: [xsl] xslt 1.1 - one liner From: "Hasnain Panjwani" <niansah@xxxxxxxxx> Date: Thu, 5 Jul 2007 21:51:57 +0200 |
Given below, what I want to do is to chop off the spaces on the left, but keep the line breaks. The one liner does exactly that - never claimed it was a replacement of trim()! One problem though - it leaves one space character in the beginning... So this... <someText> This is some text to check 1) if it does what I want to do 2) Paris is in germany 3) Soccer is a fancy name for ping-pong I want to remove the 21 white space character from each line I want to keep the line breaks, so the format is maintained. </someText> With this xslt: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:strip-space elements="*" /> <xsl:output method="text"/> <xsl:variable name="vText" select="string(/)"/> <xsl:template match="/"> <xsl:value-of select="translate(normalize-space(translate($vText,' ','~')),'~',' ' )" /> </xsl:template> </xsl:stylesheet> Will give: This is some text to check 1) if it does what I want to do 2) Paris is in germany 3) Soccer is a fancy name for ping-pong I want to remove the 21 white space character from each line I want to keep the line breaks, so the format is maintained. --------------------------------- -----Original Message----- From: Dimitre Novatchev [mailto:dnovatchev@xxxxxxxxx] Sent: Thursday, July 05, 2007 5:51 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] xslt 1.1 - one liner > <xsl:value-of select="translate(normalize-space(translate($text,' > ','~')),'~',' ')" /> The above code does not implement trim() ! For example, when this transformation: <xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:variable name="vText" select="string(/)"/> <xsl:template match="/"> "<xsl:value-of select="translate(normalize-space(translate($vText,' ','~')),'~',' ')" />" </xsl:template> </xsl:stylesheet> is applied against this xml document: <someText> This is some text </someText> the result is: " This is some text " The function f:trim() (See: http://fxsl.cvs.sourceforge.net/fxsl/fxsl-xslt2/Tests/testFunc-Trim.xsl?view =markup) returns: 'This is some text' -- Cheers, Dimitre Novatchev --------------------------------------- Truly great madness cannot be achieved without significant intelligence. --------------------------------------- To invent, you need a good imagination and a pile of junk ------------------------------------- You've achieved success in your field when you don't know whether what you're doing is work or play No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.476 / Virus Database: 269.10.0/886 - Release Date: 4/7/2007 1:40 PM No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.476 / Virus Database: 269.10.0/886 - Release Date: 4/7/2007 1:40 PM
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] xslt 1.1 - one liner, Dimitre Novatchev | Thread | RE: [xsl] xslt 1.1 - one liner, Michael Kay |
RE: RE: [xsl] Help quoting sequence, cknell | Date | Re: [xsl] Removing an XML Attribute, Tony Graham |
Month |