RE: [xsl] Testing for text before an element

Subject: RE: [xsl] Testing for text before an element
From: Jarno.Elovirta@xxxxxxxxx
Date: Tue, 17 Jul 2001 06:11:54 +0300
Hip hei!

> 	I'm trying to detect if either:
> 		the first child of the current node is not a <para>
> 	or
> 		text appears before a first child <para> node
> 
> 	I'm using a <xsl:if
> test="not(child::*[1][self::para])"><LineBreak/></xsl:if> 
> test.  How do I
> modify this expression to evaluate false if text preceeds a 
> <para> child?

The test above actually doesn't test whether the first child of the current
node is not a <para>, but rather if the first child element of the current
node is not a <para>. Use

  <xsl:if test="not(child::node()[1][self::para])"><LineBreak/></xsl:if>

And for the second test, assuming the text and <para> element are children
of the current node

  <xsl:if test="not(text()[following-sibling::para])"><LineBreak/></xsl:if>

Jarno

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread