Subject: Re: 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/
|