Re: [xsl] current() - referring to top in nested predicates

Subject: Re: [xsl] current() - referring to top in nested predicates
From: Martin Honnen <Martin.Honnen@xxxxxx>
Date: Wed, 06 Aug 2008 14:01:38 +0200
Michael Ludwig wrote:

The following produces empty output and hence doesn't work, but you
probably can see my intention. Using the current() function, I'm trying
to refer to the current <T> to find out if the current <B> contained in
$b falls within the bounds of the interval, but without success.

I am not sure I have understood what you want to achieve but you can use current() to refer to 'T' elements if you slightly reorganize your stylesheet:


<xsl:transform version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  <xsl:output method="text"/>
  <xsl:variable name="b" select="//B"/>
  <xsl:template match="/">
    <xsl:apply-templates select="//T [ position() != last() ]"/>
  </xsl:template>
  <xsl:template match="T">
    <xsl:if test="count( $b[.  >=  current() and
                      . &lt; current()/following-sibling::T[1]]) > 0">
      <xsl:value-of select="."/>
      <xsl:text>&#10;</xsl:text>
    </xsl:if>
  </xsl:template>
</xsl:transform>

The result with your sample is

6
12

Is that the result you are looking for?


--


	Martin Honnen
	http://JavaScript.FAQTs.com/

Current Thread