XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
RE: [xml-dev] Can Xpath 1.0 print "position()" results?

Title: Can Xpath 1.0 print "position()" results?
count(/foolist/foo[.='gamma']/preceding-sibling::*) + 1
 
Michael Kay
http://www.saxonica.com/


From: Karr, David [mailto:david.karr@wamu.net]
Sent: 22 October 2008 21:38
To: Michael Kay; xml-dev@lists.xml.org
Subject: RE: [xml-dev] Can Xpath 1.0 print "position()" results?

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".

From: Michael Kay [mailto:mike@saxonica.com]
Sent: Wednesday, October 22, 2008 1:31 PM
To: Karr, David; xml-dev@lists.xml.org
Subject: RE: [xml-dev] Can Xpath 1.0 print "position()" results?

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/


From: Karr, David [mailto:david.karr@wamu.net]
Sent: 22 October 2008 19:35
To: xml-dev@lists.xml.org
Subject: [xml-dev] Can Xpath 1.0 print "position()" results?

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]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS