[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Simple Question concerning [last()]

Subject: Re: Simple Question concerning [last()]
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Sat, 8 Feb 2003 11:44:03 -0800 (PST)
xpath last child
<Stefan.Wachter@xxxxxx> wrote in message
news:13789.1044728370@xxxxxxxxxxxxxxxx
> Hi all.
> 
> My question is about a [last()] predicate in a simple step. Running 
> the following stylesheet on itself yields unexpected results using 
> Saxon and Xalan.
> 
> I thought the XPath ".//x[last()] should return the last x-Element in
> document order. However, it returns the first one. Changing the 
> selection to ".//x[2] returns nothing at all! Yet, the XPath ".//x" 
> returns all x-Elements and the first x-Element has the position 1 and

> the second 2.
> 
> Is this a bug in the mentioned XSLT processors or have I missed 
> something?

You missed something. According to the XPath spec:

http://www.w3.org/TR/xpath#path-abbrev

"// is short for /descendant-or-self::node()/"

Therefore, the expression:

.//x[last()]

is equivalent to:

./descendant-or-self::node()/child::x[last()]

This returns all "x" descendent elements, which are the last child of
their parent.

In your case all "x" elements are the only (that means the last) child
of their parent. Therefore, all are returned.

Analogously:

.//x[2]

is equivalent to:

./descendant-or-self::node()/child::x[2]

and returns all "x" descendent elements, which are the second child of
their parent.

But there are not two "x" elements which are children of the same
parent!
Therefore, nothing will be returned.


What you probably wanted was:

(.//x)[last()]

and

(.//x)[2]



Hope this helped.


=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL


__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.