This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: Testing for text before an element


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]