xsl-list
[Top] [All Lists]

RE: trouble with preceding axis

2006-01-03 14:09:21

//item[label = 'subTitle']/preceding-sibling::item[1]

Your expression

//preceding::item[label = 'subTitle']

means

/descendant-or-self::node()/preceding::item[label = 'subTitle']

which finds all the nodes in the document, then for each one searches
backwards to find preceding items with label='subtitle', and then eliminates
the duplicates.

Note also the distinction between preceding-sibling and preceding.

In your case the [1] is unnecessary because there is only one preceding
sibling item, but I guess your real problem is a bit more complex.

Michael Kay
http://www.saxonica.com/ 

-----Original Message-----
From: Duane Gran [mailto:duane(_dot_)gran(_at_)gmail(_dot_)com] 
Sent: 03 January 2006 18:35
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] trouble with preceding axis

I'm having some trouble using the preceding axis in XPath and would  
be much obliged if someone could steer me in the right direction.  I  
have the following document:

<root>
   <item order="3">
     <label>Title</label>
   </item>
   <item order="4">
     <label>subTitle</label>
   </item>
</root>

I have the following XPath to select the second item, based on the  
value of its label child:

   //item[label = 'subTitle']

Now I want to modify this so that I refer to the preceding item  
element, the first one in the list.  I tried the following without  
success (it returns the second item element):

   //preceding::item[label = 'subTitle']

Suggestions are most welcome on this.

Duane

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--