Re: [xsl] Testing for following text()

Subject: Re: [xsl] Testing for following text()
From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx>
Date: Wed, 31 Oct 2007 17:19:09 +0000
On 31/10/2007, Sascha Mantscheff <922492@xxxxxx> wrote:
> How can I test if there is a text node following and restrict the test
> to a certain parent element?
> In the example I'd like to test if there is text following after the
> <s/> element up to the enclosing end tag of the <b> element.
> This test should fire at the first s element because of the following
> BBB text, but not at the second s element in spite of the following AAA
> text.
> The structure below the b element may contain any number of nesting
> levels and element.
> I'd like to include the test in a template which tackles the s element,
> like <xsl:template match="s[some-test]">
>
> --- Example -------------------------
> <a>
>   aaa
>   <b>
>       bbb
>       <c>
>           ccc
>           </s>
>       </c>
>       BBB
>   </b>
>   AAA
>   <b>
>       bbb
>       <c>
>           ccc
>           <s/>
>       </c>
>   </b>
>    AAA
> </a>
> --- /Example -------------------------
>

well if you want it purely in the template match for <s> then you can do:

match="s[(ancestor::b[1]//text())[last()] >> .]"

...but there's probably a neater solution where you work it out at the
<b> level and then pass down a boolean as a tunnelled parameter.

cheers
-- 
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

Current Thread