[XML-DEV Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
RE: Can Xpath 1.0 print "position()" results?
- From: "Michael Kay" <mike@s...>
- To: "'Karr, David'" <david.karr@w...>,<xml-dev@l...>
- Date: Wed, 22 Oct 2008 21:50:44 +0100
Title: Can Xpath 1.0 print "position()" results?
count(/foolist/foo[.='gamma']/preceding-sibling::*) +
1
Michael Kay
http://www.saxonica.com/
Ok, here's a contrived
example:
<foolist>
<foo>alpha</foo>
<foo>beta</foo>
<foo>gamma</foo>
<foo>delta</foo>
</foolist>
Write an xpath
expression that returns the position in "foolist" of the "foo" element with
the content "gamma".
The following XPath 1.0 expression returns the value of
position():
position()
It doesn't print it of course, XPath doesn't know
anything about printers, that part is up to you.
But this isn't very useful. The value of position() is
the "context position" in the dynamic evaluation context of the XPath
expression, which is whatever the caller sets it up to be. In fact, most
XPath APIs don't give you any way to initialize the context position to
anything but 1, and I'm not sure what use it would be if they allowed
anything else. (An exception is when XPath is embedded in XSLT, in which
case the context position tells you something about what's happening on the
XSLT side of the boundary.)
I suspect you don't want to know the context position
at all. I suspect you want to know the position of some node in a tree
relative to its neighbours, for example the number of preceding siblings it
has. If you explain what you really want, then I'm sure we can tell you how
to get it.
Michael Kay
http://www.saxonica.com/
Not that I really need to know this,
but someone asked this on StackOverflow, and now I gotta know. :)
Is it possible for a plain Xpath 1.0
query to return a "position()" value? I know it can be used in
predicates, but that simply results in the found element at that
position. I know I can return the "text()" result from an Xpath, but
is it not possible to return the "position()" value? If that's the
case, I imagine there are other functions that might seem logical to get
values from that won't work like
this.
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
|
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
RSS 2.0 |
|
Atom 0.3 |
|
|
Stylus Studio has published XML-DEV in RSS and ATOM formats,
enabling users to easily subcribe to the list from their preferred news reader application.
|
Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website.
they were not included by the author in the initial post. To view the content without the Sponsor Links please
click here.
|
|