This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Sibling text nodes
- From: Jeni Tennison <jeni at jenitennison dot com>
- To: "John R. Daily" <jdaily at progeny dot com>
- Cc: XSL-List at lists dot mulberrytech dot com
- Date: Tue, 16 Jul 2002 16:54:20 +0100
- Subject: Re: [xsl] Sibling text nodes
- Organization: Jeni Tennison Consulting Ltd
- References: <20020716153813.480D618221@albus.progeny.com>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi John,
> Given an XML fragment like:
>
> <outer><inner>blah</inner> following text.</outer>
>
> Before I can finish processing the "inner" element, I need to
> examine the next sibling node (following-sibling::*[1]?) to
> determine if it is a text node whose contents begin with a
> non-whitespace character.
You're close. following-sibling::*[1] gets the next sibling *element*.
You want to get the next sibling node:
following-sibling::node()[1]
then test whether it's a text node:
following-sibling::node()[1][self::text()]
Having found it, you can then test whether it starts with a whitespace
character:
contains(' 	

',
substring(following-sibling::node()[1][self::text()], 1, 1))
This test will return true if the next sibling node is a text node
that starts with a whitespace character, and false if there isn't a
following sibling node, it's not a text node, or if it doesn't start
with a whitespace character.
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list