Subject: Re: Very simple? Text processing from document data
From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx>
Date: Wed, 30 Jul 2008 13:31:26 +0100
|
> <p>Some body <b>text</b> some more</p>
>
> And I want to replace the word 'body' only in the text of <p> but ignore
> text in <b> so I've been looking at something like this:
>
> <xsl:template match="p">
> <p>
> <xsl:value-of select="substring-before(./text(), 'body')"/>
> <xsl:value-of select="'replace_body'"/>
> <xsl:value-of select="substring-after(./text(), 'body')"/>
> </p>
> </xsl:template>
>
> How do I separately select #text before, between and after an arbitrary
> number of interruptions (could be tables, images etc) and process those
> interruptions in document order?
Use:
<xsl:template match="p/text()">
<xsl:analyze-string......
instead of your <p> matching template.
If you are stuck with 1.0, then you'll have to use a recursive named
template to process the string.
cheers
--
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/
|