|
[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: xpath: which is right?
Suzan Foster wrote: > Taking the following XML: > > <foo> > <bar id="1" /> > <bar id="2" /> > <bar id="3" /> > <fu /> > </foo> > > which value should be returned by the xpath: > > preceding::bar[1]/@id > > libxslt says 3, whilst XML::XPath says 1. > > groetjes, su. You have already gotten two correct answers. Here is some additional information. This example is lifted almost directly from the XPath 1.0 standard (http://www.w3.org/TR/xpath#node-sets), which tells you that the value of preceding::bar[1] is the first preceding bar element in reverse document order. Assuming the initial context in your example is the fu element, the value of preceding::bar[1]/@id should be 3. If the context were <bar id="2"/> the value would be 1. Etc. In XPath 2.0, preceding is defined to return its results in document order. So, starting from the fu element, libxslt is right or wrong, depending on whether it is following XPath 1.0 or 2.0 rules, respectively. Bob Foster http://xmlbuddy.com/
|
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








