|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: problem with last() function
> I've had to use "self::node()[position()=last()]" instead of simply
the step self::node() constructs a current node list with exactly one
element so position() and last() will always be 1, so position()=last()
is always true().
so "self::node()[position()=last()]" is equivalent to self::node()
As you are using this is a boolean context it is true as self::node() is
always non empty, and as | is effectively or-ing together the boolean
values,
<xsl:if test="following-sibling::table |
following-sibling:list | self::node()[position()=last()]">
is equivalent to <xsl:if test="true()">
which is equivalent to ""
I _think_ you want the test to be true just in the case that the only
following nodes (if there are any) are table or list, in which case
that is
<xsl:test="not(following-sibling::node()[not(self::table or self::list)])">
Note if you use node() then all nodes will be tested including any white
space nodes between the elements. If you only want to test following
elements then use * not node()
David
_____________________________________________________________________
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
Star Internet for details on the Virus Scanning Service.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








