Subject: Re: [xsl] Combination of normalize-space() and apply-templates From: David Carlisle <davidc@xxxxxxxxx> Date: Thu, 26 Feb 2004 10:40:09 GMT |
<xsl:template match="document"> <xsl:apply-templates select="normalize-space(para)" /> </xsl:template> It doesn't work. But if I do it this way: normalize-space returns a string and you can't apply templates to a string, only to nodes. The easy thing to do is normalize each text node of the para separately, to do that you go <xsl:template match="para"> <p> <xsl:apply-templates/> </p> </xsl:template> <xsl:template match="emph"> <em> <xsl:apply-templates/> </em> </xsl:template> and have <xsl:template match="para/text()"> <xsl:value-of select="normalize-space(.)"/> </xsl:template> However that will normalize the two text nodes separately, producing <p>Some text, that is wrapped several times, but should be one line in the output document. And which has -- to make it tricky -- some Elements<em>within</em>which should also be processed.</p> and the space around the emph has gone, so you need to put something more like <xsl:template match="para/text()"> <xsl:if test="preceding-sibling::* and (starts-with(.,' ') or starts-with(.,' '))"> <xsl:text> </xsl:text> </xsl:if> <xsl:value-of select="normalize-space(.)"/> <xsl:if test="following-sibling::* and (substring(.,string-length(.)-1)=' ') or substring(.,string-length(.)-1)=' ')> <xsl:text> </xsl:text> </xsl:if> </xsl:template> -- http://www.dcarlisle.demon.co.uk/matthew ________________________________________________________________________ This e-mail has been scanned for all viruses by Star Internet. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk ________________________________________________________________________ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Combination of normalize-spac, Andreas Grytz | Thread | Re: [xsl] Combination of normalize-, Andreas Grytz |
[xsl] Combination of normalize-spac, Andreas Grytz | Date | RE: [xsl] Combination of normalize-, Jarno . Elovirta |
Month |