This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Testing for text before an element
- To: <xsl-list at lists dot mulberrytech dot com>, <kenb at medifor dot com>
- Subject: RE: [xsl] Testing for text before an element
- From: "Robert C. Lyons" <boblyons at unidex dot com>
- Date: Tue, 17 Jul 2001 00:07:02 -0400
- Reply-To: xsl-list at lists dot mulberrytech dot com
Ken,
It seems to me that you want to output a
<LineBreak/> if the first child node of
the current node is not a para element.
For example, if the first child node of
the current node is a text node or an
element named abc, then you would want
to output a <LineBreak/>.
The following is true if the first child
node of the current node is not a para
element:
child::node()[1][not( self::para )]
If you don't want to output a <LineBreak/>
when the first child element of the current
node is a para element that is preceded by
ignorable whitespace, then you can include
the following instruction in your stylesheet:
<xsl:strip-space elements="*"/>
Hope this helps.
Bob
<sig name = 'Bob Lyons'
title = 'XML Consultant'
company = 'Unidex, Inc.'
phone = '+1-732-975-9877'
email = 'boblyons@unidex.com'
url = 'http://www.unidex.com/'
product = 'XML Convert: transforms flat files to XML and vice versa' />
-----Original Message-----
Hi,
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?
Thanks!
Ken Barnett
Medifor Inc., a division of Allscripts Healthcare Solutions
647 Washington Street, Port Townsend, WA 98368
kenb@medifor.com Voice: 360-385-0722 Fax: 360-385-4402
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list