|
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 |