xsl-list
[Top] [All Lists]

Re: [xsl] Testing for following text()

2007-10-31 10:19:45
On 31/10/2007, Sascha Mantscheff <922492(_at_)gmx(_dot_)de> 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/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--