[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] detecting text between nodes


Subject: Re: [xsl] detecting text between nodes
From: António Mota <amsmota@xxxxxxxxx>
Date: Thu, 24 Feb 2005 17:04:12 +0000

I'n not a xsl-specialist but maybe

preceding-sibling::*[1]/text()


On Thu, 24 Feb 2005 17:59:02 +0100, Uwe Janner <xsl@xxxxxxxxx> wrote:
> dear xsl-specialists,
> 
> i try write an xsl to transform html-documents (with a restricted
> html-subset) directly to fo.
> 
> my only problem is the <br/>-tag:
> if i have "aaa<br/>bbb<br/>ccc"
> then i simply have to replace each br-tag with a <fo:block/> just to insert
> a line-break.
> 
> but if i have "aaa<br/><br/>bbb" the first br is responsible for the
> line-break and the second will insert an empty line, i.e. i have to convert
> the second br-tag to something that inserts an empty line:
> "aaa<fo:block/><fo:block space-after="10"/>bbb"
> 
> so, the attribute "space-after=10" is present if the preceding sibling is a
> "br" and there is nothing except whitespace between the current br and the
> preceding br;
> 
> but how can i express this condition with xpath?
> 
> <xsl:template match="br">
>   <fo:block>
>     <xsl:if test="name(./preceding-sibling::*[1])='br' and
> NOTHINGBUTWHITESPACEBETWEEN(.,./preceding-sibling::*[1])">
>       <xsl:attribute name="space-after">10pt</xsl:attribute>
>     </xsl:if>
>   </fo:block>
> </xsl:template>
> 
> tia for any hint!
> 
> fusel!


Current Thread
Keywords
xsl