Subject: RE: [xsl] preceding/following character? From: "Andrew Welch" <ajwelch@xxxxxxxxxxxxxxx> Date: Fri, 17 Jun 2005 08:58:27 +0100 |
> Say I have source with mixed content like: > > <foo>Some text and more text <bar/>. Some more text.</foo> > > I need a "bar" matched template that will under certain > conditions move > that period that immediately follows the element to be ahead it. > > E.g., in some conditions, output would be: > > <foo_out>Some text and more text.<bar_out/> Some more text.</foo_out> > > This seems like a simple problem, but I can't really fathom how to > solve it. I'm using XSLT 2.0. How about: <xsl:template match="/"> <div> <xsl:apply-templates/> </div> </xsl:template> <xsl:template match="text()[preceding-sibling::*[1][self::bar]]"> <xsl:choose> <xsl:when test="substring(.,1,1) = '.'"> <xsl:text/>.<bar_out/> <xsl:value-of select="substring(.,2)"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="."/> </xsl:otherwise> </xsl:choose> </xsl:template> When applied to: <foo>Some text and more text <bar/>. Some more text.</foo> Results in: <div>Some text and more text .<bar_out/> Some more text.</div> cheers andrew
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] preceding/following chara, David Carlisle | Thread | RE: [xsl] preceding/following chara, Andrew Welch |
Re: [xsl] preceding/following chara, omprakash . v | Date | Re: [xsl] preceding/following chara, Aron Bock |
Month |