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]
Other format: [Raw text]

Re: Sibling text nodes


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(' &#x9;&#xA;&#xD',
           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


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